[−][src]Function nom::multi::many1_count
pub fn many1_count<I, O, E, F>(f: F) -> impl Fn(I) -> IResult<I, usize, E> where
I: Clone + PartialEq,
F: Fn(I) -> IResult<I, O, E>,
E: ParseError<I>, Repeats the embedded parser until it fails and returns the number of successful iterations. Fails if the embedded parser does not succeed at least once.
Arguments
fThe parser to apply.
use nom::multi::many1_count; use nom::bytes::complete::tag; fn parser(s: &str) -> IResult<&str, usize> { many1_count(tag("abc"))(s) } assert_eq!(parser("abcabc"), Ok(("", 2))); assert_eq!(parser("abc123"), Ok(("123", 1))); assert_eq!(parser("123123"), Err(Err::Error(("123123", ErrorKind::Many1Count)))); assert_eq!(parser(""), Err(Err::Error(("", ErrorKind::Many1Count))));