# Function nom::combinator::recognize

source · [−]

    pub fn recognize<I: Clone + Offset + Slice<RangeTo<usize>>, O, E: ParseError<I>, F>(
        parser: F
    ) -> impl FnMut(I) -> IResult<I, I, E> where
        F: Parser<I, O, E>,

Expand description

If the child parser was successful, return the consumed input as produced value.

    use nom::combinator::recognize;
    use nom::character::complete::{char, alpha1};
    use nom::sequence::separated_pair;

    let mut parser = recognize(separated_pair(alpha1, char(','), alpha1));

    assert_eq!(parser("abcd,efgh"), Ok(("", "abcd,efgh")));
    assert_eq!(parser("abcd;"),Err(Err::Error((";", ErrorKind::Char))));