diff options
author | Andrew Varner <varnerac@users.noreply.github.com> | 2022-06-21 23:03:42 -0400 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2022-06-23 17:28:34 +0100 |
commit | 5abe5464d9a633d75949fa305485a5a876c866fd (patch) | |
tree | a06eb4f2ab11e8f2dbcc8c5c40a8e1c2cb5b0c36 /src | |
parent | 4607b89d02c8c4091566a9f709db2721f2f26486 (diff) | |
download | gleam_stdlib-5abe5464d9a633d75949fa305485a5a876c866fd.tar.gz gleam_stdlib-5abe5464d9a633d75949fa305485a5a876c866fd.zip |
Add `concat_bit_strings` fun to `bit_builder`
Diffstat (limited to 'src')
-rw-r--r-- | src/gleam/bit_builder.gleam | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/gleam/bit_builder.gleam b/src/gleam/bit_builder.gleam index a3791c8..2a7d435 100644 --- a/src/gleam/bit_builder.gleam +++ b/src/gleam/bit_builder.gleam @@ -108,7 +108,7 @@ pub fn append_string(to: BitBuilder, suffix: String) -> BitBuilder { append_builder(to, from_string(suffix)) } -/// Joins a list of builders into a single builders. +/// Joins a list of builders into a single builder. /// /// Runs in constant time. /// @@ -127,6 +127,27 @@ if javascript { } } +/// Joins a list of bit strings into a single builder. +/// +/// Runs in constant time. +/// +pub fn concat_bit_strings(bits: List(BitString)) -> BitBuilder { + do_concat_bit_strings(bits) +} + +if erlang { + external fn do_concat_bit_strings(List(BitString)) -> BitBuilder = + "gleam_stdlib" "identity" +} + +if javascript { + fn do_concat_bit_strings(bits: List(BitString)) -> BitBuilder { + bits + |> list.map(fn(b) { from_bit_string(b) }) + |> concat() + } +} + /// Creates a new builder from a string. /// /// Runs in constant time when running on Erlang. |