torsh_data/dataset/
chaindataset_traits.rs1use super::functions::IterableDataset;
13use super::types::{ChainDataset, ChainDatasetIter};
14
15impl<D: IterableDataset + Clone> IterableDataset for ChainDataset<D> {
16 type Item = D::Item;
17 type Iter = ChainDatasetIter<D>;
18 fn iter(&self) -> Self::Iter {
19 let current_iter = if !self.datasets.is_empty() {
20 Some(self.datasets[0].iter())
21 } else {
22 None
23 };
24 ChainDatasetIter {
25 datasets: self.datasets.clone(),
26 current_index: 0,
27 current_iter,
28 }
29 }
30}
31
32impl<D: IterableDataset + Clone> Clone for ChainDataset<D> {
33 fn clone(&self) -> Self {
34 Self {
35 datasets: self.datasets.clone(),
36 }
37 }
38}