Trait rayon::iter::BoundedParallelIterator
[−]
[src]
pub trait BoundedParallelIterator: ParallelIterator { fn upper_bound(&mut self) -> usize; fn drive<'c, C: Consumer<Self::Item>>(self, consumer: C) -> C::Result; }
A trait for parallel iterators items where the precise number of items is not known, but we can at least give an upper-bound. These sorts of iterators result from filtering.
Required Methods
fn upper_bound(&mut self) -> usize
fn drive<'c, C: Consumer<Self::Item>>(self, consumer: C) -> C::Result
Internal method used to define the behavior of this parallel iterator. You should not need to call this directly.
This method causes the iterator self
to start producing
items and to feed them to the consumer consumer
one by one.
It may split the consumer before doing so to create the
opportunity to produce in parallel. If a split does happen, it
will inform the consumer of the index where the split should
occur (unlike ParallelIterator::drive_unindexed()
).
See the README for more details on the internals of parallel iterators.
Implementors
impl<T: Ord + Send> BoundedParallelIterator for rayon::collections::binary_heap::IntoIter<T>
impl<'a, T: Ord + Sync + 'a> BoundedParallelIterator for rayon::collections::binary_heap::Iter<'a, T>
impl<T: Send> BoundedParallelIterator for rayon::collections::vec_deque::IntoIter<T>
impl<'a, T: Sync + 'a> BoundedParallelIterator for rayon::collections::vec_deque::Iter<'a, T>
impl<'a, T: Send + 'a> BoundedParallelIterator for rayon::collections::vec_deque::IterMut<'a, T>
impl<A, B> BoundedParallelIterator for Chain<A, B> where A: BoundedParallelIterator,
B: BoundedParallelIterator<Item=A::Item>impl<I> BoundedParallelIterator for Enumerate<I> where I: IndexedParallelIterator
impl<I, P> BoundedParallelIterator for Filter<I, P> where I: BoundedParallelIterator,
P: Fn(&I::Item) -> bool + Syncimpl<I, P, R> BoundedParallelIterator for FilterMap<I, P> where I: BoundedParallelIterator,
P: Fn(I::Item) -> Option<R> + Sync,
R: Sendimpl<U, I, ID, F> BoundedParallelIterator for Fold<I, ID, F> where I: BoundedParallelIterator,
F: Fn(U, I::Item) -> U + Sync,
ID: Fn() -> U + Sync,
U: Sendimpl<I> BoundedParallelIterator for Skip<I> where I: IndexedParallelIterator
impl<I> BoundedParallelIterator for Take<I> where I: IndexedParallelIterator
impl<I, F> BoundedParallelIterator for Map<I, F> where I: BoundedParallelIterator,
F: MapOp<I::Item>impl<I: BoundedParallelIterator> BoundedParallelIterator for Weight<I>
impl<A, B> BoundedParallelIterator for Zip<A, B> where A: IndexedParallelIterator,
B: IndexedParallelIteratorimpl<I> BoundedParallelIterator for Rev<I> where I: IndexedParallelIterator
impl<I> BoundedParallelIterator for MinLen<I> where I: IndexedParallelIterator
impl<I> BoundedParallelIterator for MaxLen<I> where I: IndexedParallelIterator
impl<T: Send> BoundedParallelIterator for rayon::option::IntoIter<T>
impl<'a, T: Sync + 'a> BoundedParallelIterator for rayon::option::Iter<'a, T>
impl<'a, T: Send + 'a> BoundedParallelIterator for rayon::option::IterMut<'a, T>
impl BoundedParallelIterator for rayon::range::Iter<u8>
impl BoundedParallelIterator for rayon::range::Iter<u16>
impl BoundedParallelIterator for rayon::range::Iter<u32>
impl BoundedParallelIterator for rayon::range::Iter<usize>
impl BoundedParallelIterator for rayon::range::Iter<i8>
impl BoundedParallelIterator for rayon::range::Iter<i16>
impl BoundedParallelIterator for rayon::range::Iter<i32>
impl BoundedParallelIterator for rayon::range::Iter<isize>
impl<T: Send> BoundedParallelIterator for rayon::result::IntoIter<T>
impl<'a, T: Sync + 'a> BoundedParallelIterator for rayon::result::Iter<'a, T>
impl<'a, T: Send + 'a> BoundedParallelIterator for rayon::result::IterMut<'a, T>
impl<'data, T: Sync + 'data> BoundedParallelIterator for rayon::slice::Iter<'data, T>
impl<'data, T: Sync + 'data> BoundedParallelIterator for Chunks<'data, T>
impl<'data, T: Sync + 'data> BoundedParallelIterator for Windows<'data, T>
impl<'data, T: Send + 'data> BoundedParallelIterator for rayon::slice::IterMut<'data, T>
impl<'data, T: Send + 'data> BoundedParallelIterator for ChunksMut<'data, T>
impl<T: Send> BoundedParallelIterator for rayon::vec::IntoIter<T>