Trait rayon::par_iter::IndexedParallelIterator
[−]
[src]
pub trait IndexedParallelIterator: ExactParallelIterator { fn zip<ZIP_OP>(self, zip_op: ZIP_OP) -> ZipIter<Self, ZIP_OP::Iter> where ZIP_OP: IntoParallelIterator,
ZIP_OP::Iter: IndexedParallelIterator { ... } fn cmp<I>(self, other: I) -> Ordering where I: IntoParallelIterator<Item=Self::Item>,
I::Iter: IndexedParallelIterator,
Self::Item: Ord { ... } fn partial_cmp<I>(self, other: I) -> Option<Ordering> where I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item> { ... } fn eq<I>(self, other: I) -> bool where I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialEq<I::Item> { ... } fn ne<I>(self, other: I) -> bool where I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialEq<I::Item> { ... } fn lt<I>(self, other: I) -> bool where I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item> { ... } fn le<I>(self, other: I) -> bool where I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item> { ... } fn gt<I>(self, other: I) -> bool where I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item> { ... } fn ge<I>(self, other: I) -> bool where I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item> { ... } fn enumerate(self) -> Enumerate<Self> { ... } fn skip(self, n: usize) -> Skip<Self> { ... } fn take(self, n: usize) -> Take<Self> { ... } fn position_any<POSITION_OP>(self, predicate: POSITION_OP) -> Option<usize> where POSITION_OP: Fn(Self::Item) -> bool + Sync { ... } }
An iterator that supports "random access" to its data, meaning that you can split it at arbitrary indices and draw data from those points.
Provided Methods
fn zip<ZIP_OP>(self, zip_op: ZIP_OP) -> ZipIter<Self, ZIP_OP::Iter> where ZIP_OP: IntoParallelIterator, ZIP_OP::Iter: IndexedParallelIterator
Iterate over tuples (A, B)
, where the items A
are from
this iterator and B
are from the iterator given as argument.
Like the zip
method on ordinary iterators, if the two
iterators are of unequal length, you only get the items they
have in common.
fn cmp<I>(self, other: I) -> Ordering where I: IntoParallelIterator<Item=Self::Item>,
I::Iter: IndexedParallelIterator,
Self::Item: Ord
I::Iter: IndexedParallelIterator,
Self::Item: Ord
Lexicographically compares the elements of this ParallelIterator
with those of
another.
fn partial_cmp<I>(self, other: I) -> Option<Ordering> where I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>
Lexicographically compares the elements of this ParallelIterator
with those of
another.
fn eq<I>(self, other: I) -> bool where I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialEq<I::Item>
I::Iter: IndexedParallelIterator,
Self::Item: PartialEq<I::Item>
Determines if the elements of this ParallelIterator
are equal to those of another
fn ne<I>(self, other: I) -> bool where I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialEq<I::Item>
I::Iter: IndexedParallelIterator,
Self::Item: PartialEq<I::Item>
Determines if the elements of this ParallelIterator
are unequal to those of another
fn lt<I>(self, other: I) -> bool where I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>
Determines if the elements of this ParallelIterator
are lexicographically less than those of another.
fn le<I>(self, other: I) -> bool where I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>
Determines if the elements of this ParallelIterator
are less or equal to those of another.
fn gt<I>(self, other: I) -> bool where I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>
Determines if the elements of this ParallelIterator
are lexicographically greater than those of another.
fn ge<I>(self, other: I) -> bool where I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>
Determines if the elements of this ParallelIterator
are less or equal to those of another.
fn enumerate(self) -> Enumerate<Self>
Yields an index along with each item.
fn skip(self, n: usize) -> Skip<Self>
Creates an iterator that skips the first n
elements.
fn take(self, n: usize) -> Take<Self>
Creates an iterator that yields the first n
elements.
fn position_any<POSITION_OP>(self, predicate: POSITION_OP) -> Option<usize> where POSITION_OP: Fn(Self::Item) -> bool + Sync
Searches for some item in the parallel iterator that
matches the given predicate, and returns its index. Like
ParallelIterator::find_any
, the parallel search will not
necessarily find the first match, and once a match is
found we'll attempt to stop processing any more.
Implementors
impl<A, B> IndexedParallelIterator for ChainIter<A, B> where A: IndexedParallelIterator,
B: IndexedParallelIterator<Item=A::Item>impl<M> IndexedParallelIterator for Enumerate<M> where M: IndexedParallelIterator
impl<M> IndexedParallelIterator for Skip<M> where M: IndexedParallelIterator
impl<M> IndexedParallelIterator for Take<M> where M: IndexedParallelIterator
impl<'data, T: Sync + 'data> IndexedParallelIterator for SliceIter<'data, T>
impl<'data, T: Sync + 'data> IndexedParallelIterator for ChunksIter<'data, T>
impl<'data, T: Send + 'data> IndexedParallelIterator for SliceIterMut<'data, T>
impl<'data, T: Send + 'data> IndexedParallelIterator for ChunksMutIter<'data, T>
impl<M, MAP_OP> IndexedParallelIterator for Map<M, MAP_OP> where M: IndexedParallelIterator,
MAP_OP: MapOp<M::Item>impl<M: IndexedParallelIterator> IndexedParallelIterator for Weight<M>
impl<A, B> IndexedParallelIterator for ZipIter<A, B> where A: IndexedParallelIterator,
B: IndexedParallelIteratorimpl IndexedParallelIterator for RangeIter<u8>
impl IndexedParallelIterator for RangeIter<u16>
impl IndexedParallelIterator for RangeIter<u32>
impl IndexedParallelIterator for RangeIter<usize>
impl IndexedParallelIterator for RangeIter<i8>
impl IndexedParallelIterator for RangeIter<i16>
impl IndexedParallelIterator for RangeIter<i32>
impl IndexedParallelIterator for RangeIter<isize>
impl<T: Send> IndexedParallelIterator for VecIter<T>
impl<T: Send> IndexedParallelIterator for OptionIter<T>