diff options
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 |