bitty/bits
Bit-level parsers for reading individual bits and sub-byte unsigned
integers. Bits are read MSB-first within each byte. Use bitty.align to
return to byte-aligned parsing after bit-level operations.
Values
pub fn bit() -> bitty.Parser(Bool)
Parse a single bit as a Bool (True for 1, False for 0).
Bits are read MSB-first within each byte.
let assert Ok(#(flag, _)) =
bitty.run_partial(bits.bit(), on: <<0x80>>)
assert flag == True
pub fn uint(bits count: Int) -> bitty.Parser(Int)
Parse count bits as an unsigned integer. Does not require byte
alignment — can start mid-byte. On the JavaScript target, values
above 32 bits may lose precision due to IEEE 754 double-precision
limitations.
let assert Ok(#(value, _)) =
bitty.run_partial(bits.uint(bits: 4), on: <<0xAB>>)
assert value == 0x0A