aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRichard Viney <richard.viney@heartlab.com>2024-02-13 12:59:29 +1300
committerLouis Pilfold <louis@lpil.uk>2024-02-15 11:26:10 +0000
commit162a249fad087e77be8434dbe4913faa0fdcd29b (patch)
treefae555ad39f329e5d4518c730a22cc6c5eccc74b /src
parent29652e44850cf99ab62db1f3f287f6183ce65a82 (diff)
downloadgleam_stdlib-162a249fad087e77be8434dbe4913faa0fdcd29b.tar.gz
gleam_stdlib-162a249fad087e77be8434dbe4913faa0fdcd29b.zip
Make bit_array.inspect work on JS
Diffstat (limited to 'src')
-rw-r--r--src/gleam/bit_array.gleam10
-rw-r--r--src/gleam_stdlib.mjs4
2 files changed, 12 insertions, 2 deletions
diff --git a/src/gleam/bit_array.gleam b/src/gleam/bit_array.gleam
index 4a2e7bb..52da8cb 100644
--- a/src/gleam/bit_array.gleam
+++ b/src/gleam/bit_array.gleam
@@ -157,6 +157,7 @@ pub fn base16_encode(input: BitArray) -> String
@external(javascript, "../gleam_stdlib.mjs", "base16_decode")
pub fn base16_decode(input: String) -> Result(BitArray, Nil)
+@target(javascript)
/// Converts a bit array to a string containing the decimal value of each byte.
///
/// ## Examples
@@ -168,12 +169,17 @@ pub fn base16_decode(input: String) -> Result(BitArray, Nil)
/// inspect(<<100, 5:3>>)
/// // -> "<<100, 5:size(3)>>"
/// ```
-///
+///
+@external(javascript, "../gleam_stdlib.mjs", "bit_array_inspect")
+pub fn inspect(input: BitArray) -> String
+
+@target(erlang)
pub fn inspect(input: BitArray) -> String {
do_inspect(input, "<<") <> ">>"
}
-fn do_inspect(input: BitArray, accumulator: String) -> String {
+@target(erlang)
+pub fn do_inspect(input: BitArray, accumulator: String) -> String {
case input {
<<>> -> accumulator
diff --git a/src/gleam_stdlib.mjs b/src/gleam_stdlib.mjs
index 877e707..3f3fbb6 100644
--- a/src/gleam_stdlib.mjs
+++ b/src/gleam_stdlib.mjs
@@ -879,3 +879,7 @@ export function base16_decode(string) {
}
return new Ok(new BitArray(bytes));
}
+
+export function bit_array_inspect(bits) {
+ return `<<${[...bits.buffer].join(", ")}>>`;
+}