Macro nom::bits [−][src]
macro_rules! bits {
($i : expr, $submac : ident! ($($args : tt) *)) => { ... };
($i : expr, $f : expr) => { ... };
}
Expand description
Transforms its byte slice input into a bit stream for the underlying parser. This allows the given bit stream parser to work on a byte slice input.
Signature:
bits!( parser ) => ( &[u8], (&[u8], usize) -> IResult<(&[u8], usize), T> ) -> IResult<&[u8], T>
named!( take_4_bits<u8>, bits!( take_bits!( 4u8 ) ) );
let input = vec![0xAB, 0xCD, 0xEF, 0x12];
let sl = &input[..];
assert_eq!(take_4_bits( sl ), Ok( (&sl[1..], 0xA) ));
assert_eq!(take_4_bits( &b""[..] ), Err(Err::Incomplete(Needed::Size(1))));