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