pub fn many<A, I: Clone>(mut parser: impl Parser<A, I>) -> impl Parser<Vec<A>, I> {
    move |mut input: I| {
        let mut output = Vec::<A>::new();
        while let Some((value, next)) = parser.parse(input.clone()) {
            input = next;
            output.push(value);
        }
        Some((output, input))
    }
}
/// Applies a parser zero or more times.
Applies a parser zero or more times.
Applies a parser zero or more times .
pub fn many<A, I: Clone>(mut parser: impl Parser<A, I>) -> impl Parser<Vec<A>, I> {
    move |mut input: I| {
        let mut output = Vec::<A>::new();
        while let Some((value, next)) = parser.parse(input.clone()) {
            input = next;
            output.push(value);
        }
        Some((output, input))
    }
}
pub fn many < A , I : Clone > ( mut parser : impl Parser < A , I > ) -> impl Parser < Vec < A > , I > { move | mut input : I | { let mut output = Vec :: < A > :: new ( ) ; while let Some ( ( value , next ) ) = parser . parse ( input . clone ( ) ) { input = next ; output . push ( value ) ; } Some ( ( output , input ) ) } }
Applies a parser zero or more times.
Applies a parser zero or more times .
parser
impl Parser<A, I>