Struct rayon::iter::reduce::ReduceConsumer
source · struct ReduceConsumer<'r, R, ID> {
identity: &'r ID,
reduce_op: &'r R,
}
Fields§
§identity: &'r ID
§reduce_op: &'r R
Trait Implementations§
source§impl<'r, R, ID> Clone for ReduceConsumer<'r, R, ID>
impl<'r, R, ID> Clone for ReduceConsumer<'r, R, ID>
source§impl<'r, R, ID, T> Consumer<T> for ReduceConsumer<'r, R, ID>
impl<'r, R, ID, T> Consumer<T> for ReduceConsumer<'r, R, ID>
source§type Folder = ReduceFolder<'r, R, T>
type Folder = ReduceFolder<'r, R, T>
The type of folder that this consumer can be converted into.
source§type Reducer = ReduceConsumer<'r, R, ID>
type Reducer = ReduceConsumer<'r, R, ID>
The type of reducer that is produced if this consumer is split.
source§fn split_at(self, _index: usize) -> (Self, Self, Self)
fn split_at(self, _index: usize) -> (Self, Self, Self)
Divide the consumer into two consumers, one processing items
0..index
and one processing items from index..
. Also
produces a reducer that can be used to reduce the results at
the end.source§fn into_folder(self) -> Self::Folder
fn into_folder(self) -> Self::Folder
Convert the consumer into a folder that can consume items
sequentially, eventually producing a final result.
source§impl<'r, R, ID, T> Reducer<T> for ReduceConsumer<'r, R, ID>
impl<'r, R, ID, T> Reducer<T> for ReduceConsumer<'r, R, ID>
source§impl<'r, R, ID, T> UnindexedConsumer<T> for ReduceConsumer<'r, R, ID>
impl<'r, R, ID, T> UnindexedConsumer<T> for ReduceConsumer<'r, R, ID>
source§fn split_off_left(&self) -> Self
fn split_off_left(&self) -> Self
Splits off a “left” consumer and returns it. The
self
consumer should then be used to consume the “right” portion of
the data. (The ordering matters for methods like find_first –
values produced by the returned value are given precedence
over values produced by self
.) Once the left and right
halves have been fully consumed, you should reduce the results
with the result of to_reducer
.source§fn to_reducer(&self) -> Self::Reducer
fn to_reducer(&self) -> Self::Reducer
Creates a reducer that can be used to combine the results from
a split consumer.
impl<'r, R, ID> Copy for ReduceConsumer<'r, R, ID>
Auto Trait Implementations§
impl<'r, R, ID> Freeze for ReduceConsumer<'r, R, ID>
impl<'r, R, ID> RefUnwindSafe for ReduceConsumer<'r, R, ID>where
ID: RefUnwindSafe,
R: RefUnwindSafe,
impl<'r, R, ID> Send for ReduceConsumer<'r, R, ID>
impl<'r, R, ID> Sync for ReduceConsumer<'r, R, ID>
impl<'r, R, ID> Unpin for ReduceConsumer<'r, R, ID>
impl<'r, R, ID> UnwindSafe for ReduceConsumer<'r, R, ID>where
ID: RefUnwindSafe,
R: RefUnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more