nodeagg/iter.rs
1pub struct ConcatIterator<'a, T> {
2 pub itrs: Vec<Box<dyn Iterator<Item = T> + 'a>>,
3}
4
5impl<T> Iterator for ConcatIterator<'_, T> {
6 type Item = T;
7 fn next(&mut self) -> Option<Self::Item> {
8 let mut index: usize = 0;
9 loop {
10 match self.itrs.get_mut(index) {
11 None => break None,
12 Some(e) => match e.next() {
13 None => index += 1,
14 Some(v) => break Some(v),
15 },
16 }
17 }
18 }
19}
20
21pub type NodeaggIterator<'a> = itertools::Unique<ConcatIterator<'a, String>>;