burn_dataset/dataset/
iterator.rs

1use crate::dataset::Dataset;
2use std::iter::Iterator;
3
4/// Dataset iterator.
5pub struct DatasetIterator<'a, I> {
6    current: usize,
7    dataset: &'a dyn Dataset<I>,
8}
9
10impl<'a, I> DatasetIterator<'a, I> {
11    /// Creates a new dataset iterator.
12    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}