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
Search Document