Module nom::bits [−][src]
Bit level parsers and combinators
Bit parsing is handled by tweaking the input in most macros.
In byte level parsing, the input is generally a &[u8]
passed from combinator
to combinator as the slices are manipulated.
Bit parsers take a (&[u8], usize)
as input. The first part of the tuple is a byte slice,
the second part is a bit offset in the first byte of the slice.
By passing a pair like this, we can leverage most of the existing combinators, and avoid transforming the whole slice to a vector of booleans. This should make it easy to see a byte slice as a bit stream, and parse code points of arbitrary bit length.