aboutsummaryrefslogtreecommitdiff
path: root/src/gleam/bit_string.gleam
diff options
context:
space:
mode:
Diffstat (limited to 'src/gleam/bit_string.gleam')
-rw-r--r--src/gleam/bit_string.gleam133
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