Function fold_many0
fn fold_many0<I, E, F, G, H, R>(parser: F, init: H, g: G) -> impl Parser<I, Output = R, Error = E>
where
I: Clone + Input,
F: Parser<I, Error = E>,
G: FnMut(R, <F as Parser<I>>::Output) -> R,
H: FnMut() -> R,
E: ParseError<I>
Repeats the embedded parser, calling g to gather the results.
This stops on Err::Error. To instead chain an error up, see
[cut][crate::combinator::cut].
Arguments
fThe parser to apply.initA function returning the initial value.gThe function that combines a result offwith the current accumulator.
Note: if the parser passed in accepts empty inputs (like alpha0 or digit0), many0 will
return an error, to prevent going into an infinite loop
# use ;
use fold_many0;
use tag;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;