burn_dataset/dataset/
iterator.rs1use crate::dataset::Dataset;
2use std::iter::Iterator;
3
4pub struct DatasetIterator<'a, I> {
6 current: usize,
7 dataset: &'a dyn Dataset<I>,
8}
9
10impl<'a, I> DatasetIterator<'a, I> {
11 pub fn new<D>(dataset: &'a D) -> Self
13 where
14 D: Dataset<I>,
15 {
16 DatasetIterator {
17 current: 0,
18 dataset,
19 }
20 }
21}
22
23impl<I> Iterator for DatasetIterator<'_, I> {
24 type Item = I;
25
26 fn next(&mut self) -> Option<I> {
27 let item = self.dataset.get(self.current);
28 self.current += 1;
29 item
30 }
31}