nom::error

Function dbg_dmp

Source
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);