diff options
Diffstat (limited to 'gen')
-rw-r--r-- | gen/src/gleam@string.erl | 11 | ||||
-rw-r--r-- | gen/test/gleam@string_test.erl | 38 |
2 files changed, 47 insertions, 2 deletions
diff --git a/gen/src/gleam@string.erl b/gen/src/gleam@string.erl index c8b76bc..86b1f79 100644 --- a/gen/src/gleam@string.erl +++ b/gen/src/gleam@string.erl @@ -1,7 +1,7 @@ -module(gleam@string). -compile(no_auto_import). --export([is_empty/1, length/1, reverse/1, replace/3, lowercase/1, uppercase/1, compare/2, slice/3, contains/2, starts_with/2, ends_with/2, split/2, append/2, concat/1, repeat/2, join/2, trim/1, trim_left/1, trim_right/1]). +-export([is_empty/1, length/1, reverse/1, replace/3, lowercase/1, uppercase/1, compare/2, slice/3, contains/2, starts_with/2, ends_with/2, split/2, append/2, concat/1, repeat/2, join/2, pad_left/3, pad_right/3, trim/1, trim_left/1, trim_right/1]). is_empty(Str) -> Str =:= <<""/utf8>>. @@ -88,6 +88,15 @@ join(Strings, Separator) -> gleam@iodata:from_strings(gleam@list:intersperse(Strings, Separator)) ). +erl_pad(A, B, C, D) -> + gleam_stdlib:string_pad(A, B, C, D). + +pad_left(String, Length, PadString) -> + erl_pad(String, Length, leading, PadString). + +pad_right(String, Length, PadString) -> + erl_pad(String, Length, trailing, PadString). + erl_trim(A, B) -> string:trim(A, B). diff --git a/gen/test/gleam@string_test.erl b/gen/test/gleam@string_test.erl index f975af9..54e517f 100644 --- a/gen/test/gleam@string_test.erl +++ b/gen/test/gleam@string_test.erl @@ -1,7 +1,7 @@ -module(gleam@string_test). -compile(no_auto_import). --export([length_test/0, lowercase_test/0, uppercase_test/0, reverse_test/0, split_test/0, replace_test/0, append_test/0, compare_test/0, contains_test/0, concat_test/0, repeat_test/0, join_test/0, trim_test/0, trim_left_test/0, trim_right_test/0, starts_with_test/0, ends_with_test/0, slice_test/0]). +-export([length_test/0, lowercase_test/0, uppercase_test/0, reverse_test/0, split_test/0, replace_test/0, append_test/0, compare_test/0, contains_test/0, concat_test/0, repeat_test/0, join_test/0, trim_test/0, trim_left_test/0, trim_right_test/0, starts_with_test/0, ends_with_test/0, slice_test/0, pad_left_test/0, pad_right_test/0]). length_test() -> gleam@should:equal(gleam@string:length(<<"ß↑e̊"/utf8>>), 3), @@ -174,3 +174,39 @@ slice_test() -> gleam@string:slice(<<"gleam"/utf8>>, -12, 2), <<""/utf8>> ). + +pad_left_test() -> + gleam@should:equal( + gleam@string:pad_left(<<"121"/utf8>>, 5, <<"."/utf8>>), + <<"..121"/utf8>> + ), + gleam@should:equal( + gleam@string:pad_left(<<"121"/utf8>>, 3, <<"."/utf8>>), + <<"121"/utf8>> + ), + gleam@should:equal( + gleam@string:pad_left(<<"121"/utf8>>, 2, <<"."/utf8>>), + <<"121"/utf8>> + ), + gleam@should:equal( + gleam@string:pad_left(<<"121"/utf8>>, 5, <<"XY"/utf8>>), + <<"XYXY121"/utf8>> + ). + +pad_right_test() -> + gleam@should:equal( + gleam@string:pad_right(<<"121"/utf8>>, 5, <<"."/utf8>>), + <<"121.."/utf8>> + ), + gleam@should:equal( + gleam@string:pad_right(<<"121"/utf8>>, 3, <<"."/utf8>>), + <<"121"/utf8>> + ), + gleam@should:equal( + gleam@string:pad_right(<<"121"/utf8>>, 2, <<"."/utf8>>), + <<"121"/utf8>> + ), + gleam@should:equal( + gleam@string:pad_right(<<"121"/utf8>>, 5, <<"XY"/utf8>>), + <<"121XYXY"/utf8>> + ). |