1 use nom::{
2   bytes::complete::tag,
3   multi::{many0, many0_count},
4 };
5 
6 #[test]
parse()7 fn parse() {
8   let mut counter = 0;
9 
10   let res = {
11     let mut parser = many0::<_, _, (), _>(|i| {
12       counter += 1;
13       tag("abc")(i)
14     });
15 
16     parser("abcabcabcabc").unwrap()
17   };
18 
19   println!("res: {:?}", res);
20   assert_eq!(counter, 5);
21 }
22 
23 #[test]
accumulate()24 fn accumulate() {
25   let mut v = Vec::new();
26 
27   let (_, count) = {
28     let mut parser = many0_count::<_, _, (), _>(|i| {
29       let (i, o) = tag("abc")(i)?;
30       v.push(o);
31       Ok((i, ()))
32     });
33     parser("abcabcabcabc").unwrap()
34   };
35 
36   println!("v: {:?}", v);
37   assert_eq!(count, 4);
38   assert_eq!(v.len(), 4);
39 }
40