pub fn dbg_dmp<'a, F, O, E: Debug>(
f: F,
context: &'static str
) -> impl Fn(&'a [u8]) -> IResult<&'a [u8], O, E> where
F: Fn(&'a [u8]) -> IResult<&'a [u8], O, E>,
Expand description
Prints a message and the input if the parser fails.
The message prints the Error
or Incomplete
and the parser’s calling code.
It also displays the input in hexdump format
use nom::{IResult, error::dbg_dmp, bytes::complete::tag};
fn f(i: &[u8]) -> IResult<&[u8], &[u8]> {
dbg_dmp(tag("abcd"), "tag")(i)
}
let a = &b"efghijkl"[..];
// Will print the following message:
// Error(Position(0, [101, 102, 103, 104, 105, 106, 107, 108])) at l.5 by ' tag ! ( "abcd" ) '
// 00000000 65 66 67 68 69 6a 6b 6c efghijkl
f(a);