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}