1macro_rules! dispatch {
2 ($match_parser: expr; $( $pat:pat $(if $pred:expr)? => $expr: expr ),+ $(,)? ) => {
3 move |i|
4 {
5 let (i, initial) = $match_parser.parse_next(i)?;
6 match initial {
7 $(
8 $pat $(if $pred)? => $expr.parse_next(i),
9 )*
10 }
11 }
12 }
13}
14