byte_parser/
parse_iter.rs

1
2use crate::ParseIterator;
3
4pub struct ParseIter<I, F> {
5	i: I,
6	f: F
7}
8
9impl<I, F> ParseIter<I, F> {
10	pub(crate) fn new(i: I, f: F) -> Self {
11		Self {i, f}
12	}
13}
14
15impl<'s, I, F, O> Iterator for ParseIter<I, F>
16where
17	I: ParseIterator<'s>,
18	F: FnMut(&mut I) -> Option<O> {
19
20	type Item = O;
21
22	fn next(&mut self) -> Option<O> {
23		(self.f)(&mut self.i)
24	}
25}