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}