diff options
author | Louis Pilfold <louis@lpil.uk> | 2023-10-19 21:47:19 +0100 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2023-10-26 12:24:40 +0100 |
commit | b713e6fd185ad8b4da90f4b686aa9ecf0f60f0e4 (patch) | |
tree | 65e58212b32e5d2e6bbff81aaa050aacb82bb357 /src/gleam/bit_string.gleam | |
parent | b181a406b5bc4e1855a1455b9d603d30320f1b54 (diff) | |
download | gleam_stdlib-b713e6fd185ad8b4da90f4b686aa9ecf0f60f0e4.tar.gz gleam_stdlib-b713e6fd185ad8b4da90f4b686aa9ecf0f60f0e4.zip |
Run gleam fix, make bit_array module
Diffstat (limited to 'src/gleam/bit_string.gleam')
-rw-r--r-- | src/gleam/bit_string.gleam | 133 |
1 files changed, 26 insertions, 107 deletions
diff --git a/src/gleam/bit_string.gleam b/src/gleam/bit_string.gleam index 25ad686..b703da0 100644 --- a/src/gleam/bit_string.gleam +++ b/src/gleam/bit_string.gleam @@ -1,124 +1,43 @@ -//// Working with raw bit string data. -//// The `BitString` type should be used instead of a String type when not utf8 -//// encoded. +//// This module has been deprecated. Please use the `gleam/bit_array` module +//// instead. -/// Converts a UTF-8 `String` type into a raw `BitString` type. -/// -pub fn from_string(x: String) -> BitString { - do_from_string(x) -} - -@external(erlang, "gleam_stdlib", "identity") -@external(javascript, "../gleam_stdlib.mjs", "bit_string_from_string") -fn do_from_string(a: String) -> BitString +import gleam/bit_array -/// Returns an integer which is the number of bytes in the bit string. -/// -pub fn byte_size(x: BitString) -> Int { - do_byte_size(x) +@deprecated("Please use the `gleam/bit_array` module instead.") +pub fn from_string(x: String) -> BitArray { + bit_array.from_string(x) } -@external(erlang, "erlang", "byte_size") -@external(javascript, "../gleam_stdlib.mjs", "length") -fn do_byte_size(a: BitString) -> Int +@deprecated("Please use the `gleam/bit_array` module instead.") +pub fn byte_size(x: BitArray) -> Int { + bit_array.byte_size(x) +} -/// Creates a new bit string by joining two binaries. -/// -/// ## Examples -/// -/// ```gleam -/// > append(to: from_string("butter"), suffix: from_string("fly")) -/// from_string("butterfly") -/// ``` -/// -pub fn append(to first: BitString, suffix second: BitString) -> BitString { - concat([first, second]) +@deprecated("Please use the `gleam/bit_array` module instead.") +pub fn append(to first: BitArray, suffix second: BitArray) -> BitArray { + bit_array.append(first, second) } -/// Extracts a sub-section of a bit string. -/// -/// The slice will start at given position and continue up to specified -/// length. -/// A negative length can be used to extract bytes at the end of a bit string. -/// -/// This function runs in constant time. -/// +@deprecated("Please use the `gleam/bit_array` module instead.") pub fn slice( - from string: BitString, + from string: BitArray, at position: Int, take length: Int, -) -> Result(BitString, Nil) { - do_slice(string, position, length) +) -> Result(BitArray, Nil) { + bit_array.slice(string, position, length) } -@external(erlang, "gleam_stdlib", "bit_string_slice") -@external(javascript, "../gleam_stdlib.mjs", "bit_string_slice") -fn do_slice( - string string: BitString, - position position: Int, - length length: Int, -) -> Result(BitString, Nil) - -/// Tests to see whether a bit string is valid UTF-8. -/// -pub fn is_utf8(bits: BitString) -> Bool { - do_is_utf8(bits) +@deprecated("Please use the `gleam/bit_array` module instead.") +pub fn is_utf8(bits: BitArray) -> Bool { + bit_array.is_utf8(bits) } -@target(erlang) -fn do_is_utf8(bits: BitString) -> Bool { - case bits { - <<>> -> True - <<_:utf8, rest:binary>> -> do_is_utf8(rest) - _ -> False - } +@deprecated("Please use the `gleam/bit_array` module instead.") +pub fn to_string(bits: BitArray) -> Result(String, Nil) { + bit_array.to_string(bits) } -@target(javascript) -fn do_is_utf8(bits: BitString) -> Bool { - case to_string(bits) { - Ok(_) -> True - _ -> False - } +@deprecated("Please use the `gleam/bit_array` module instead.") +pub fn concat(bit_strings: List(BitArray)) -> BitArray { + bit_array.concat(bit_strings) } - -/// Converts a bit string to a string. -/// -/// Returns an error if the bit string is invalid UTF-8 data. -/// -pub fn to_string(bits: BitString) -> Result(String, Nil) { - do_to_string(bits) -} - -@target(erlang) -@external(erlang, "gleam_stdlib", "identity") -fn unsafe_to_string(a: BitString) -> String - -@target(erlang) -fn do_to_string(bits: BitString) -> Result(String, Nil) { - case is_utf8(bits) { - True -> Ok(unsafe_to_string(bits)) - False -> Error(Nil) - } -} - -@target(javascript) -@external(javascript, "../gleam_stdlib.mjs", "bit_string_to_string") -fn do_to_string(a: BitString) -> Result(String, Nil) - -/// Creates a new bit string by joining multiple binaries. -/// -/// ## Examples -/// -/// ```gleam -/// > concat([from_string("butter"), from_string("fly")]) -/// from_string("butterfly") -/// ``` -/// -pub fn concat(bit_strings: List(BitString)) -> BitString { - do_concat(bit_strings) -} - -@external(erlang, "gleam_stdlib", "bit_string_concat") -@external(javascript, "../gleam_stdlib.mjs", "bit_string_concat") -fn do_concat(a: List(BitString)) -> BitString |