diff options
author | Richard Viney <richard.viney@heartlab.com> | 2024-02-13 12:59:29 +1300 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2024-02-15 11:26:10 +0000 |
commit | 162a249fad087e77be8434dbe4913faa0fdcd29b (patch) | |
tree | fae555ad39f329e5d4518c730a22cc6c5eccc74b /src | |
parent | 29652e44850cf99ab62db1f3f287f6183ce65a82 (diff) | |
download | gleam_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.gleam | 10 | ||||
-rw-r--r-- | src/gleam_stdlib.mjs | 4 |
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(", ")}>>`; +} |