Current section
Files
Jump to
Current section
Files
src/metamon@transform@string.erl
-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) -> <<Prefix/binary, S/binary>> 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) -> <<S/binary, Suffix/binary>> end
).