parser_byte_map

Macro parser_byte_map 

Source
macro_rules! parser_byte_map {
    (
        $($($l:literal)|+ => $e:expr),+$(,)?
    ) => { ... };
}
Expand description

Helper to create a parser::byte_lut parser using match-like syntax.

Each expression must be const and must evaluate to a value of the same copy type.

ยงExamples

let parser = parser::byte_map!(
    b'#' => true,
    b'.' | b'S' => false,
);
assert_eq!(parser.parse(b"#.S##"), Ok((true, &b".S##"[..])));
assert_eq!(parser.parse(b".S##"), Ok((false, &b"S##"[..])));
assert_eq!(parser.parse(b"S##"), Ok((false, &b"##"[..])));

let (err, remaining) = parser.parse(b"abc").unwrap_err();
assert_eq!(err.to_string(), "expected one of '#', '.', 'S'");
assert_eq!(remaining, &b"abc"[..]);