-module(metamon@transform@string). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/metamon/transform/string.gleam"). -export([reverse/0, lowercase/0, uppercase/0, trim/0, prepend/1, append/1]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. ?MODULEDOC( " Standard `Transform(String)` constructors used in metamorphic\n" " relations.\n" ). -file("src/metamon/transform/string.gleam", 8). ?DOC(" Reverse the string by graphemes.\n"). -spec reverse() -> metamon@transform:transform(binary()). reverse() -> metamon@transform:new(<<"string.reverse"/utf8>>, fun gleam@string:reverse/1). -file("src/metamon/transform/string.gleam", 14). ?DOC( " Lowercase the string (locale-independent ASCII only — gleam_stdlib\n" " guarantees ASCII semantics).\n" ). -spec lowercase() -> metamon@transform:transform(binary()). lowercase() -> metamon@transform:new(<<"string.lowercase"/utf8>>, fun string:lowercase/1). -file("src/metamon/transform/string.gleam", 19). ?DOC(" Uppercase the string (ASCII only — see `lowercase` note).\n"). -spec uppercase() -> metamon@transform:transform(binary()). uppercase() -> metamon@transform:new(<<"string.uppercase"/utf8>>, fun string:uppercase/1). -file("src/metamon/transform/string.gleam", 24). ?DOC(" Strip leading and trailing whitespace.\n"). -spec trim() -> metamon@transform:transform(binary()). trim() -> metamon@transform:new(<<"string.trim"/utf8>>, fun gleam@string:trim/1). -file("src/metamon/transform/string.gleam", 29). ?DOC(" Prepend `prefix` to the string.\n"). -spec prepend(binary()) -> metamon@transform:transform(binary()). prepend(Prefix) -> metamon@transform:new( <<<<"string.prepend(\""/utf8, Prefix/binary>>/binary, "\")"/utf8>>, fun(S) -> <> end ). -file("src/metamon/transform/string.gleam", 34). ?DOC(" Append `suffix` to the string.\n"). -spec append(binary()) -> metamon@transform:transform(binary()). append(Suffix) -> metamon@transform:new( <<<<"string.append(\""/utf8, Suffix/binary>>/binary, "\")"/utf8>>, fun(S) -> <> end ).