Function nom::combinator::verify [−][src]
pub fn verify<I: Clone, O1, O2, E: ParseError<I>, F, G>(
first: F,
second: G
) -> impl Fn(I) -> IResult<I, O1, E> where
F: Fn(I) -> IResult<I, O1, E>,
G: Fn(&O2) -> bool,
O1: Borrow<O2>,
O2: ?Sized,
returns the result of the child parser if it satisfies a verification function
the verification function takes as argument a reference to the output of the parser
use nom::combinator::verify; use nom::character::complete::alpha1; let parser = verify(alpha1, |s: &str| s.len() == 4); assert_eq!(parser("abcd"), Ok(("", "abcd"))); assert_eq!(parser("abcde"), Err(Err::Error(("abcde", ErrorKind::Verify)))); assert_eq!(parser("123abcd;"),Err(Err::Error(("123abcd;", ErrorKind::Alpha))));