Skip to main content

moirai_iter/parallel/traits/
conversion.rs

1use super::iterator::ParallelIterator;
2
3/// Extension trait for collections to create parallel iterators.
4pub trait IntoParallelIterator {
5    /// Element type yielded by the iterator.
6    type Item: Send;
7    /// Parallel iterator produced by conversion.
8    type Iter: ParallelIterator<Item = Self::Item>;
9
10    /// Convert `self` into a parallel iterator.
11    fn into_par_iter(self) -> Self::Iter;
12}
13
14/// Extension trait for collection references to create parallel iterators.
15pub trait IntoParallelRefIterator<'data> {
16    /// Element type yielded by the iterator.
17    type Item: Send + Sync + 'data;
18    /// Parallel iterator produced by conversion.
19    type Iter: ParallelIterator<Item = Self::Item>;
20
21    /// Create a parallel iterator over references to `self`.
22    fn par_iter(&'data self) -> Self::Iter;
23}