aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Varner <varnerac@users.noreply.github.com>2022-06-21 23:03:42 -0400
committerLouis Pilfold <louis@lpil.uk>2022-06-23 17:28:34 +0100
commit5abe5464d9a633d75949fa305485a5a876c866fd (patch)
treea06eb4f2ab11e8f2dbcc8c5c40a8e1c2cb5b0c36 /src
parent4607b89d02c8c4091566a9f709db2721f2f26486 (diff)
downloadgleam_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.gleam23
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.