1 | macro_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 |