diff options
-rw-r--r-- | gen/src/gleam@string.erl | 5 | ||||
-rw-r--r-- | gen/test/gleam@string_test.erl | 8 | ||||
-rw-r--r-- | src/gleam/string.gleam | 6 | ||||
-rw-r--r-- | test/gleam/string_test.gleam | 8 |
4 files changed, 25 insertions, 2 deletions
diff --git a/gen/src/gleam@string.erl b/gen/src/gleam@string.erl index 722ea09..c94fb9f 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([length/1, lowercase/1, uppercase/1, compare/2, reverse/1, split/2, replace/3, append/2]). +-export([length/1, lowercase/1, uppercase/1, compare/2, reverse/1, split/2, replace/3, append/2, concat/1]). length(A) -> string:length(A). @@ -33,3 +33,6 @@ append(First, Second) -> gleam@iodata:to_string( gleam@iodata:append(gleam@iodata:new(First), Second) ). + +concat(Strings) -> + gleam@iodata:to_string(gleam@iodata:from_strings(Strings)). diff --git a/gen/test/gleam@string_test.erl b/gen/test/gleam@string_test.erl index e28f696..777c498 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]). +-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, concat_test/0]). length_test() -> gleam@expect:equal(gleam@string:length(<<"ß↑e̊">>), 3), @@ -45,3 +45,9 @@ compare_test() -> gleam@expect:equal(gleam@string:compare(<<"a">>, <<"A">>), gt), gleam@expect:equal(gleam@string:compare(<<"A">>, <<"B">>), lt), gleam@expect:equal(gleam@string:compare(<<"t">>, <<"ABC">>), gt). + +concat_test() -> + gleam@expect:equal( + gleam@string:concat([<<"Hello">>, <<", ">>, <<"world!">>]), + <<"Hello, world!">> + ). diff --git a/src/gleam/string.gleam b/src/gleam/string.gleam index 92d46b6..14619bf 100644 --- a/src/gleam/string.gleam +++ b/src/gleam/string.gleam @@ -42,3 +42,9 @@ pub fn append(to first: String, suffix second: String) -> String { |> iodata.append(_, second) |> iodata.to_string } + +pub fn concat(strings: List(String)) -> String { + strings + |> iodata.from_strings + |> iodata.to_string +} diff --git a/test/gleam/string_test.gleam b/test/gleam/string_test.gleam index 15a30f8..f4f9089 100644 --- a/test/gleam/string_test.gleam +++ b/test/gleam/string_test.gleam @@ -66,3 +66,11 @@ pub fn compare_test() { string.compare("t", "ABC") |> expect.equal(_, order.Gt) } + +pub fn concat_test() { + [ + "Hello", ", ", "world!", + ] + |> string.concat + |> expect.equal(_, "Hello, world!") +} |