pub fn fallback<A: Clone, I: Clone>(def: A, mut parser: impl Parser<A, I>) -> impl Parser<A, I> {
    move |input: I| {
        parser
            .parse(input.clone())
            .or_else(|| Some((def.clone(), input)))
    }
}
/// Tries to apply a parser, or fallback to a constant value (making it an always-succeeding parser).
Tries to apply a parser, or fallback to a constant value (making it an always-succeeding parser).
Tries to apply a parser or fallback to a constant value ( making it an always - succeeding parser ) .
pub fn fallback<A: Clone, I: Clone>(def: A, mut parser: impl Parser<A, I>) -> impl Parser<A, I> {
    move |input: I| {
        parser
            .parse(input.clone())
            .or_else(|| Some((def.clone(), input)))
    }
}
pub fn fallback < A : Clone , I : Clone > ( def : A , mut parser : impl Parser < A , I > ) -> impl Parser < A , I > { move | input : I | { parser . parse ( input . clone ( ) ) . or_else ( | | Some ( ( def . clone ( ) , input ) ) ) } }
Tries to apply a parser, or fallback to a constant value (making it an always-succeeding parser).
Tries to apply a parser or fallback to a constant value ( making it an always - succeeding parser ) .
def
A
parser
impl Parser<A, I>