Struct rayon::slice::ChunksExactMut
source · pub struct ChunksExactMut<'data, T: Send> { /* private fields */ }Expand description
Parallel iterator over mutable non-overlapping chunks of a slice
Implementations
sourceimpl<'data, T: Send> ChunksExactMut<'data, T>
impl<'data, T: Send> ChunksExactMut<'data, T>
sourcepub fn into_remainder(self) -> &'data mut [T] ⓘ
pub fn into_remainder(self) -> &'data mut [T] ⓘ
Return the remainder of the original slice that is not going to be
returned by the iterator. The returned slice has at most chunk_size-1
elements.
Note that this has to consume self to return the original lifetime of
the data, which prevents this from actually being used as a parallel
iterator since that also consumes. This method is provided for parity
with std::iter::ChunksExactMut, but consider calling remainder() or
take_remainder() as alternatives.
sourcepub fn remainder(&mut self) -> &mut [T] ⓘ
pub fn remainder(&mut self) -> &mut [T] ⓘ
Return the remainder of the original slice that is not going to be
returned by the iterator. The returned slice has at most chunk_size-1
elements.
Consider take_remainder() if you need access to the data with its
original lifetime, rather than borrowing through &mut self here.
sourcepub fn take_remainder(&mut self) -> &'data mut [T] ⓘ
pub fn take_remainder(&mut self) -> &'data mut [T] ⓘ
Return the remainder of the original slice that is not going to be
returned by the iterator. The returned slice has at most chunk_size-1
elements. Subsequent calls will return an empty slice.
Trait Implementations
sourceimpl<'data, T: Debug + Send> Debug for ChunksExactMut<'data, T>
impl<'data, T: Debug + Send> Debug for ChunksExactMut<'data, T>
sourceimpl<'data, T: Send + 'data> IndexedParallelIterator for ChunksExactMut<'data, T>
impl<'data, T: Send + 'data> IndexedParallelIterator for ChunksExactMut<'data, T>
sourcefn drive<C>(self, consumer: C) -> C::Resultwhere
C: Consumer<Self::Item>,
fn drive<C>(self, consumer: C) -> C::Resultwhere
C: Consumer<Self::Item>,
sourcefn len(&self) -> usize
fn len(&self) -> usize
sourcefn with_producer<CB>(self, callback: CB) -> CB::Outputwhere
CB: ProducerCallback<Self::Item>,
fn with_producer<CB>(self, callback: CB) -> CB::Outputwhere
CB: ProducerCallback<Self::Item>,
sourcefn collect_into_vec(self, target: &mut Vec<Self::Item>)
fn collect_into_vec(self, target: &mut Vec<Self::Item>)
sourcefn unzip_into_vecs<A, B>(self, left: &mut Vec<A>, right: &mut Vec<B>)where
Self: IndexedParallelIterator<Item = (A, B)>,
A: Send,
B: Send,
fn unzip_into_vecs<A, B>(self, left: &mut Vec<A>, right: &mut Vec<B>)where
Self: IndexedParallelIterator<Item = (A, B)>,
A: Send,
B: Send,
sourcefn zip<Z>(self, zip_op: Z) -> Zip<Self, Z::Iter>where
Z: IntoParallelIterator,
Z::Iter: IndexedParallelIterator,
fn zip<Z>(self, zip_op: Z) -> Zip<Self, Z::Iter>where
Z: IntoParallelIterator,
Z::Iter: IndexedParallelIterator,
(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. Read moresourcefn zip_eq<Z>(self, zip_op: Z) -> ZipEq<Self, Z::Iter>where
Z: IntoParallelIterator,
Z::Iter: IndexedParallelIterator,
fn zip_eq<Z>(self, zip_op: Z) -> ZipEq<Self, Z::Iter>where
Z: IntoParallelIterator,
Z::Iter: IndexedParallelIterator,
Zip, but requires that both iterators have the same length. Read moresourcefn interleave<I>(self, other: I) -> Interleave<Self, I::Iter>where
I: IntoParallelIterator<Item = Self::Item>,
I::Iter: IndexedParallelIterator<Item = Self::Item>,
fn interleave<I>(self, other: I) -> Interleave<Self, I::Iter>where
I: IntoParallelIterator<Item = Self::Item>,
I::Iter: IndexedParallelIterator<Item = Self::Item>,
sourcefn interleave_shortest<I>(self, other: I) -> InterleaveShortest<Self, I::Iter>where
I: IntoParallelIterator<Item = Self::Item>,
I::Iter: IndexedParallelIterator<Item = Self::Item>,
fn interleave_shortest<I>(self, other: I) -> InterleaveShortest<Self, I::Iter>where
I: IntoParallelIterator<Item = Self::Item>,
I::Iter: IndexedParallelIterator<Item = Self::Item>,
sourcefn chunks(self, chunk_size: usize) -> Chunks<Self>
fn chunks(self, chunk_size: usize) -> Chunks<Self>
sourcefn fold_chunks<T, ID, F>(
self,
chunk_size: usize,
identity: ID,
fold_op: F
) -> FoldChunks<Self, ID, F>where
ID: Fn() -> T + Send + Sync,
F: Fn(T, Self::Item) -> T + Send + Sync,
T: Send,
fn fold_chunks<T, ID, F>(
self,
chunk_size: usize,
identity: ID,
fold_op: F
) -> FoldChunks<Self, ID, F>where
ID: Fn() -> T + Send + Sync,
F: Fn(T, Self::Item) -> T + Send + Sync,
T: Send,
sourcefn fold_chunks_with<T, F>(
self,
chunk_size: usize,
init: T,
fold_op: F
) -> FoldChunksWith<Self, T, F>where
T: Send + Clone,
F: Fn(T, Self::Item) -> T + Send + Sync,
fn fold_chunks_with<T, F>(
self,
chunk_size: usize,
init: T,
fold_op: F
) -> FoldChunksWith<Self, T, F>where
T: Send + Clone,
F: Fn(T, Self::Item) -> T + Send + Sync,
sourcefn partial_cmp<I>(self, other: I) -> Option<Ordering>where
I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>,
fn partial_cmp<I>(self, other: I) -> Option<Ordering>where
I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>,
ParallelIterator with those of
another. Read moresourcefn eq<I>(self, other: I) -> boolwhere
I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialEq<I::Item>,
fn eq<I>(self, other: I) -> boolwhere
I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialEq<I::Item>,
ParallelIterator
are equal to those of another Read moresourcefn ne<I>(self, other: I) -> boolwhere
I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialEq<I::Item>,
fn ne<I>(self, other: I) -> boolwhere
I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialEq<I::Item>,
ParallelIterator
are unequal to those of another Read moresourcefn lt<I>(self, other: I) -> boolwhere
I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>,
fn lt<I>(self, other: I) -> boolwhere
I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>,
ParallelIterator
are lexicographically less than those of another. Read moresourcefn le<I>(self, other: I) -> boolwhere
I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>,
fn le<I>(self, other: I) -> boolwhere
I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>,
ParallelIterator
are less or equal to those of another. Read moresourcefn gt<I>(self, other: I) -> boolwhere
I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>,
fn gt<I>(self, other: I) -> boolwhere
I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>,
ParallelIterator
are lexicographically greater than those of another. Read moresourcefn ge<I>(self, other: I) -> boolwhere
I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>,
fn ge<I>(self, other: I) -> boolwhere
I: IntoParallelIterator,
I::Iter: IndexedParallelIterator,
Self::Item: PartialOrd<I::Item>,
ParallelIterator
are less or equal to those of another. Read moresourcefn step_by(self, step: usize) -> StepBy<Self>
fn step_by(self, step: usize) -> StepBy<Self>
sourcefn skip(self, n: usize) -> Skip<Self>
fn skip(self, n: usize) -> Skip<Self>
n elements. Read moresourcefn take(self, n: usize) -> Take<Self>
fn take(self, n: usize) -> Take<Self>
n elements. Read moresourcefn position_any<P>(self, predicate: P) -> Option<usize>where
P: Fn(Self::Item) -> bool + Sync + Send,
fn position_any<P>(self, predicate: P) -> Option<usize>where
P: Fn(Self::Item) -> bool + Sync + Send,
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. Read moresourcefn position_first<P>(self, predicate: P) -> Option<usize>where
P: Fn(Self::Item) -> bool + Sync + Send,
fn position_first<P>(self, predicate: P) -> Option<usize>where
P: Fn(Self::Item) -> bool + Sync + Send,
sourcefn position_last<P>(self, predicate: P) -> Option<usize>where
P: Fn(Self::Item) -> bool + Sync + Send,
fn position_last<P>(self, predicate: P) -> Option<usize>where
P: Fn(Self::Item) -> bool + Sync + Send,
sourcefn positions<P>(self, predicate: P) -> Positions<Self, P>where
P: Fn(Self::Item) -> bool + Sync + Send,
fn positions<P>(self, predicate: P) -> Positions<Self, P>where
P: Fn(Self::Item) -> bool + Sync + Send,
sourcefn rev(self) -> Rev<Self>
fn rev(self) -> Rev<Self>
sourcefn with_min_len(self, min: usize) -> MinLen<Self>
fn with_min_len(self, min: usize) -> MinLen<Self>
sourcefn with_max_len(self, max: usize) -> MaxLen<Self>
fn with_max_len(self, max: usize) -> MaxLen<Self>
with_min_len().
For example, given min=10 and max=15, a length of 16 will not be
split any further. Read moresourceimpl<'data, T: Send + 'data> ParallelIterator for ChunksExactMut<'data, T>
impl<'data, T: Send + 'data> ParallelIterator for ChunksExactMut<'data, T>
sourcefn drive_unindexed<C>(self, consumer: C) -> C::Resultwhere
C: UnindexedConsumer<Self::Item>,
fn drive_unindexed<C>(self, consumer: C) -> C::Resultwhere
C: UnindexedConsumer<Self::Item>,
sourcefn opt_len(&self) -> Option<usize>
fn opt_len(&self) -> Option<usize>
sourcefn for_each<OP>(self, op: OP)where
OP: Fn(Self::Item) + Sync + Send,
fn for_each<OP>(self, op: OP)where
OP: Fn(Self::Item) + Sync + Send,
OP on each item produced by the iterator, in parallel. Read moresourcefn for_each_with<OP, T>(self, init: T, op: OP)where
OP: Fn(&mut T, Self::Item) + Sync + Send,
T: Send + Clone,
fn for_each_with<OP, T>(self, init: T, op: OP)where
OP: Fn(&mut T, Self::Item) + Sync + Send,
T: Send + Clone,
sourcefn for_each_init<OP, INIT, T>(self, init: INIT, op: OP)where
OP: Fn(&mut T, Self::Item) + Sync + Send,
INIT: Fn() -> T + Sync + Send,
fn for_each_init<OP, INIT, T>(self, init: INIT, op: OP)where
OP: Fn(&mut T, Self::Item) + Sync + Send,
INIT: Fn() -> T + Sync + Send,
OP on a value returned by init with each item produced by
the iterator, in parallel. Read moresourcefn try_for_each<OP, R>(self, op: OP) -> Rwhere
OP: Fn(Self::Item) -> R + Sync + Send,
R: Try<Output = ()> + Send,
fn try_for_each<OP, R>(self, op: OP) -> Rwhere
OP: Fn(Self::Item) -> R + Sync + Send,
R: Try<Output = ()> + Send,
OP on each item produced by the iterator, in parallel. Read moresourcefn try_for_each_with<OP, T, R>(self, init: T, op: OP) -> Rwhere
OP: Fn(&mut T, Self::Item) -> R + Sync + Send,
T: Send + Clone,
R: Try<Output = ()> + Send,
fn try_for_each_with<OP, T, R>(self, init: T, op: OP) -> Rwhere
OP: Fn(&mut T, Self::Item) -> R + Sync + Send,
T: Send + Clone,
R: Try<Output = ()> + Send,
OP on the given init value with each item
produced by the iterator, in parallel. Read moresourcefn try_for_each_init<OP, INIT, T, R>(self, init: INIT, op: OP) -> Rwhere
OP: Fn(&mut T, Self::Item) -> R + Sync + Send,
INIT: Fn() -> T + Sync + Send,
R: Try<Output = ()> + Send,
fn try_for_each_init<OP, INIT, T, R>(self, init: INIT, op: OP) -> Rwhere
OP: Fn(&mut T, Self::Item) -> R + Sync + Send,
INIT: Fn() -> T + Sync + Send,
R: Try<Output = ()> + Send,
OP on a value returned by init with each item
produced by the iterator, in parallel. Read moresourcefn map<F, R>(self, map_op: F) -> Map<Self, F>where
F: Fn(Self::Item) -> R + Sync + Send,
R: Send,
fn map<F, R>(self, map_op: F) -> Map<Self, F>where
F: Fn(Self::Item) -> R + Sync + Send,
R: Send,
map_op to each item of this iterator, producing a new
iterator with the results. Read moresourcefn map_with<F, T, R>(self, init: T, map_op: F) -> MapWith<Self, T, F>where
F: Fn(&mut T, Self::Item) -> R + Sync + Send,
T: Send + Clone,
R: Send,
fn map_with<F, T, R>(self, init: T, map_op: F) -> MapWith<Self, T, F>where
F: Fn(&mut T, Self::Item) -> R + Sync + Send,
T: Send + Clone,
R: Send,
map_op to the given init value with each item of this
iterator, producing a new iterator with the results. Read moresourcefn map_init<F, INIT, T, R>(self, init: INIT, map_op: F) -> MapInit<Self, INIT, F>where
F: Fn(&mut T, Self::Item) -> R + Sync + Send,
INIT: Fn() -> T + Sync + Send,
R: Send,
fn map_init<F, INIT, T, R>(self, init: INIT, map_op: F) -> MapInit<Self, INIT, F>where
F: Fn(&mut T, Self::Item) -> R + Sync + Send,
INIT: Fn() -> T + Sync + Send,
R: Send,
map_op to a value returned by init with each item of this
iterator, producing a new iterator with the results. Read moresourcefn cloned<'a, T>(self) -> Cloned<Self>where
T: 'a + Clone + Send,
Self: ParallelIterator<Item = &'a T>,
fn cloned<'a, T>(self) -> Cloned<Self>where
T: 'a + Clone + Send,
Self: ParallelIterator<Item = &'a T>,
sourcefn copied<'a, T>(self) -> Copied<Self>where
T: 'a + Copy + Send,
Self: ParallelIterator<Item = &'a T>,
fn copied<'a, T>(self) -> Copied<Self>where
T: 'a + Copy + Send,
Self: ParallelIterator<Item = &'a T>,
sourcefn inspect<OP>(self, inspect_op: OP) -> Inspect<Self, OP>where
OP: Fn(&Self::Item) + Sync + Send,
fn inspect<OP>(self, inspect_op: OP) -> Inspect<Self, OP>where
OP: Fn(&Self::Item) + Sync + Send,
inspect_op to a reference to each item of this iterator,
producing a new iterator passing through the original items. This is
often useful for debugging to see what’s happening in iterator stages. Read moresourcefn update<F>(self, update_op: F) -> Update<Self, F>where
F: Fn(&mut Self::Item) + Sync + Send,
fn update<F>(self, update_op: F) -> Update<Self, F>where
F: Fn(&mut Self::Item) + Sync + Send,
sourcefn filter<P>(self, filter_op: P) -> Filter<Self, P>where
P: Fn(&Self::Item) -> bool + Sync + Send,
fn filter<P>(self, filter_op: P) -> Filter<Self, P>where
P: Fn(&Self::Item) -> bool + Sync + Send,
filter_op to each item of this iterator, producing a new
iterator with only the items that gave true results. Read moresourcefn filter_map<P, R>(self, filter_op: P) -> FilterMap<Self, P>where
P: Fn(Self::Item) -> Option<R> + Sync + Send,
R: Send,
fn filter_map<P, R>(self, filter_op: P) -> FilterMap<Self, P>where
P: Fn(Self::Item) -> Option<R> + Sync + Send,
R: Send,
filter_op to each item of this iterator to get an Option,
producing a new iterator with only the items from Some results. Read moresourcefn flat_map<F, PI>(self, map_op: F) -> FlatMap<Self, F>where
F: Fn(Self::Item) -> PI + Sync + Send,
PI: IntoParallelIterator,
fn flat_map<F, PI>(self, map_op: F) -> FlatMap<Self, F>where
F: Fn(Self::Item) -> PI + Sync + Send,
PI: IntoParallelIterator,
map_op to each item of this iterator to get nested parallel iterators,
producing a new parallel iterator that flattens these back into one. Read moresourcefn flat_map_iter<F, SI>(self, map_op: F) -> FlatMapIter<Self, F>where
F: Fn(Self::Item) -> SI + Sync + Send,
SI: IntoIterator,
SI::Item: Send,
fn flat_map_iter<F, SI>(self, map_op: F) -> FlatMapIter<Self, F>where
F: Fn(Self::Item) -> SI + Sync + Send,
SI: IntoIterator,
SI::Item: Send,
map_op to each item of this iterator to get nested serial iterators,
producing a new parallel iterator that flattens these back into one. Read moresourcefn reduce<OP, ID>(self, identity: ID, op: OP) -> Self::Itemwhere
OP: Fn(Self::Item, Self::Item) -> Self::Item + Sync + Send,
ID: Fn() -> Self::Item + Sync + Send,
fn reduce<OP, ID>(self, identity: ID, op: OP) -> Self::Itemwhere
OP: Fn(Self::Item, Self::Item) -> Self::Item + Sync + Send,
ID: Fn() -> Self::Item + Sync + Send,
op.
The argument identity should be a closure that can produce
“identity” value which may be inserted into the sequence as
needed to create opportunities for parallel execution. So, for
example, if you are doing a summation, then identity() ought
to produce something that represents the zero for your type
(but consider just calling sum() in that case). Read moresourcefn reduce_with<OP>(self, op: OP) -> Option<Self::Item>where
OP: Fn(Self::Item, Self::Item) -> Self::Item + Sync + Send,
fn reduce_with<OP>(self, op: OP) -> Option<Self::Item>where
OP: Fn(Self::Item, Self::Item) -> Self::Item + Sync + Send,
op.
If the iterator is empty, None is returned; otherwise,
Some is returned. Read moresourcefn fold<T, ID, F>(self, identity: ID, fold_op: F) -> Fold<Self, ID, F>where
F: Fn(T, Self::Item) -> T + Sync + Send,
ID: Fn() -> T + Sync + Send,
T: Send,
fn fold<T, ID, F>(self, identity: ID, fold_op: F) -> Fold<Self, ID, F>where
F: Fn(T, Self::Item) -> T + Sync + Send,
ID: Fn() -> T + Sync + Send,
T: Send,
22 3 77 89 46. If
you used sequential fold to add them (fold(0, |a,b| a+b),
you would wind up first adding 0 + 22, then 22 + 3, then 25 +
77, and so forth. The parallel fold works similarly except
that it first breaks up your list into sublists, and hence
instead of yielding up a single sum at the end, it yields up
multiple sums. The number of results is nondeterministic, as
is the point where the breaks occur. Read moresourcefn fold_with<F, T>(self, init: T, fold_op: F) -> FoldWith<Self, T, F>where
F: Fn(T, Self::Item) -> T + Sync + Send,
T: Send + Clone,
fn fold_with<F, T>(self, init: T, fold_op: F) -> FoldWith<Self, T, F>where
F: Fn(T, Self::Item) -> T + Sync + Send,
T: Send + Clone,
fold_op to the given init value with each item of this
iterator, finally producing the value for further use. Read moresourcefn try_fold<T, R, ID, F>(
self,
identity: ID,
fold_op: F
) -> TryFold<Self, R, ID, F>where
F: Fn(T, Self::Item) -> R + Sync + Send,
ID: Fn() -> T + Sync + Send,
R: Try<Output = T> + Send,
fn try_fold<T, R, ID, F>(
self,
identity: ID,
fold_op: F
) -> TryFold<Self, R, ID, F>where
F: Fn(T, Self::Item) -> R + Sync + Send,
ID: Fn() -> T + Sync + Send,
R: Try<Output = T> + Send,
sourcefn try_fold_with<F, T, R>(self, init: T, fold_op: F) -> TryFoldWith<Self, R, F>where
F: Fn(T, Self::Item) -> R + Sync + Send,
R: Try<Output = T> + Send,
T: Clone + Send,
fn try_fold_with<F, T, R>(self, init: T, fold_op: F) -> TryFoldWith<Self, R, F>where
F: Fn(T, Self::Item) -> R + Sync + Send,
R: Try<Output = T> + Send,
T: Clone + Send,
init value. Read moresourcefn sum<S>(self) -> Swhere
S: Send + Sum<Self::Item> + Sum<S>,
fn sum<S>(self) -> Swhere
S: Send + Sum<Self::Item> + Sum<S>,
sourcefn product<P>(self) -> Pwhere
P: Send + Product<Self::Item> + Product<P>,
fn product<P>(self) -> Pwhere
P: Send + Product<Self::Item> + Product<P>,
sourcefn min_by<F>(self, f: F) -> Option<Self::Item>where
F: Sync + Send + Fn(&Self::Item, &Self::Item) -> Ordering,
fn min_by<F>(self, f: F) -> Option<Self::Item>where
F: Sync + Send + Fn(&Self::Item, &Self::Item) -> Ordering,
None is
returned; otherwise, Some(min) is returned. Read moresourcefn min_by_key<K, F>(self, f: F) -> Option<Self::Item>where
K: Ord + Send,
F: Sync + Send + Fn(&Self::Item) -> K,
fn min_by_key<K, F>(self, f: F) -> Option<Self::Item>where
K: Ord + Send,
F: Sync + Send + Fn(&Self::Item) -> K,
None is returned;
otherwise, Some(item) is returned. Read moresourcefn max_by<F>(self, f: F) -> Option<Self::Item>where
F: Sync + Send + Fn(&Self::Item, &Self::Item) -> Ordering,
fn max_by<F>(self, f: F) -> Option<Self::Item>where
F: Sync + Send + Fn(&Self::Item, &Self::Item) -> Ordering,
None is
returned; otherwise, Some(min) is returned. Read moresourcefn max_by_key<K, F>(self, f: F) -> Option<Self::Item>where
K: Ord + Send,
F: Sync + Send + Fn(&Self::Item) -> K,
fn max_by_key<K, F>(self, f: F) -> Option<Self::Item>where
K: Ord + Send,
F: Sync + Send + Fn(&Self::Item) -> K,
None is returned;
otherwise, Some(item) is returned. Read moresourcefn chain<C>(self, chain: C) -> Chain<Self, C::Iter>where
C: IntoParallelIterator<Item = Self::Item>,
fn chain<C>(self, chain: C) -> Chain<Self, C::Iter>where
C: IntoParallelIterator<Item = Self::Item>,
sourcefn find_any<P>(self, predicate: P) -> Option<Self::Item>where
P: Fn(&Self::Item) -> bool + Sync + Send,
fn find_any<P>(self, predicate: P) -> Option<Self::Item>where
P: Fn(&Self::Item) -> bool + Sync + Send,
find on sequential iterators but
the item returned may not be the first one in the parallel
sequence which matches, since we search the entire sequence in parallel. Read moresourcefn find_first<P>(self, predicate: P) -> Option<Self::Item>where
P: Fn(&Self::Item) -> bool + Sync + Send,
fn find_first<P>(self, predicate: P) -> Option<Self::Item>where
P: Fn(&Self::Item) -> bool + Sync + Send,
sourcefn find_last<P>(self, predicate: P) -> Option<Self::Item>where
P: Fn(&Self::Item) -> bool + Sync + Send,
fn find_last<P>(self, predicate: P) -> Option<Self::Item>where
P: Fn(&Self::Item) -> bool + Sync + Send,
sourcefn find_map_any<P, R>(self, predicate: P) -> Option<R>where
P: Fn(Self::Item) -> Option<R> + Sync + Send,
R: Send,
fn find_map_any<P, R>(self, predicate: P) -> Option<R>where
P: Fn(Self::Item) -> Option<R> + Sync + Send,
R: Send,
sourcefn find_map_first<P, R>(self, predicate: P) -> Option<R>where
P: Fn(Self::Item) -> Option<R> + Sync + Send,
R: Send,
fn find_map_first<P, R>(self, predicate: P) -> Option<R>where
P: Fn(Self::Item) -> Option<R> + Sync + Send,
R: Send,
sourcefn find_map_last<P, R>(self, predicate: P) -> Option<R>where
P: Fn(Self::Item) -> Option<R> + Sync + Send,
R: Send,
fn find_map_last<P, R>(self, predicate: P) -> Option<R>where
P: Fn(Self::Item) -> Option<R> + Sync + Send,
R: Send,
sourcefn any<P>(self, predicate: P) -> boolwhere
P: Fn(Self::Item) -> bool + Sync + Send,
fn any<P>(self, predicate: P) -> boolwhere
P: Fn(Self::Item) -> bool + Sync + Send,
sourcefn all<P>(self, predicate: P) -> boolwhere
P: Fn(Self::Item) -> bool + Sync + Send,
fn all<P>(self, predicate: P) -> boolwhere
P: Fn(Self::Item) -> bool + Sync + Send,
sourcefn while_some<T>(self) -> WhileSome<Self>where
Self: ParallelIterator<Item = Option<T>>,
T: Send,
fn while_some<T>(self) -> WhileSome<Self>where
Self: ParallelIterator<Item = Option<T>>,
T: Send,
Some items of this iterator, halting
as soon as any None is found. Read moresourcefn panic_fuse(self) -> PanicFuse<Self>
fn panic_fuse(self) -> PanicFuse<Self>
sourcefn collect<C>(self) -> Cwhere
C: FromParallelIterator<Self::Item>,
fn collect<C>(self) -> Cwhere
C: FromParallelIterator<Self::Item>,
sourcefn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)where
Self: ParallelIterator<Item = (A, B)>,
FromA: Default + Send + ParallelExtend<A>,
FromB: Default + Send + ParallelExtend<B>,
A: Send,
B: Send,
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)where
Self: ParallelIterator<Item = (A, B)>,
FromA: Default + Send + ParallelExtend<A>,
FromB: Default + Send + ParallelExtend<B>,
A: Send,
B: Send,
ParallelExtend containers. Read moresourcefn partition<A, B, P>(self, predicate: P) -> (A, B)where
A: Default + Send + ParallelExtend<Self::Item>,
B: Default + Send + ParallelExtend<Self::Item>,
P: Fn(&Self::Item) -> bool + Sync + Send,
fn partition<A, B, P>(self, predicate: P) -> (A, B)where
A: Default + Send + ParallelExtend<Self::Item>,
B: Default + Send + ParallelExtend<Self::Item>,
P: Fn(&Self::Item) -> bool + Sync + Send,
ParallelExtend containers. Items for which the predicate returns
true go into the first container, and the rest go into the second. Read moresourcefn partition_map<A, B, P, L, R>(self, predicate: P) -> (A, B)where
A: Default + Send + ParallelExtend<L>,
B: Default + Send + ParallelExtend<R>,
P: Fn(Self::Item) -> Either<L, R> + Sync + Send,
L: Send,
R: Send,
fn partition_map<A, B, P, L, R>(self, predicate: P) -> (A, B)where
A: Default + Send + ParallelExtend<L>,
B: Default + Send + ParallelExtend<R>,
P: Fn(Self::Item) -> Either<L, R> + Sync + Send,
L: Send,
R: Send,
ParallelExtend containers. Either::Left items go into
the first container, and Either::Right items go into the second. Read moreAuto Trait Implementations
impl<'data, T> RefUnwindSafe for ChunksExactMut<'data, T>where
T: RefUnwindSafe,
impl<'data, T> Send for ChunksExactMut<'data, T>
impl<'data, T> Sync for ChunksExactMut<'data, T>where
T: Sync,
impl<'data, T> Unpin for ChunksExactMut<'data, T>
impl<'data, T> !UnwindSafe for ChunksExactMut<'data, T>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> IntoParallelIterator for Twhere
T: ParallelIterator,
impl<T> IntoParallelIterator for Twhere
T: ParallelIterator,
type Iter = T
type Iter = T
type Item = <T as ParallelIterator>::Item
type Item = <T as ParallelIterator>::Item
sourcefn into_par_iter(self) -> T
fn into_par_iter(self) -> T
self into a parallel iterator. Read more