Packages
gleam_bson
0.7.0
0.27.0
retired
0.26.0
retired
0.25.0
retired
0.24.0
retired
0.23.0
retired
0.22.0
retired
0.21.0
retired
0.20.0
retired
0.19.0
retired
0.18.0
retired
0.17.0
retired
0.16.0
retired
0.15.0
retired
0.14.0
retired
0.13.0
retired
0.12.0
retired
0.11.0
retired
0.10.1
retired
0.10.0
retired
0.9.0
retired
0.8.0
retired
0.7.0
retired
0.6.0
retired
0.5.0
retired
0.4.0
retired
0.3.0
retired
0.2.0
retired
0.1.0
retired
bson encoder and decoder for gleam
Retired package: Renamed - Republished as bison
Current section
Files
Jump to
Current section
Files
src/bson/binary.gleam
import gleam/bit_string
external fn bit_size(BitString) -> Int =
"erlang" "bit_size"
pub opaque type Binary {
Generic(BitString)
}
pub fn to_string(binary: Binary) -> Result(String, Nil) {
case binary {
Generic(data) -> bit_string.to_string(data)
}
}
pub fn to_bit_string(binary: Binary) -> BitString {
case binary {
Generic(data) -> data
}
}
pub fn from_string(data: String) -> Binary {
Generic(bit_string.from_string(data))
}
pub fn from_bit_string(data: BitString) -> Result(Binary, Nil) {
case bit_size(data) % 8 {
0 -> Ok(Generic(data))
_ -> Error(Nil)
}
}