Struct rayon::iter::fold::FoldConsumer
source · struct FoldConsumer<'c, C, ID, F> {
base: C,
fold_op: &'c F,
identity: &'c ID,
}
Fields§
§base: C
§fold_op: &'c F
§identity: &'c ID
Trait Implementations§
source§impl<'r, U, T, C, ID, F> Consumer<T> for FoldConsumer<'r, C, ID, F>
impl<'r, U, T, C, ID, F> Consumer<T> for FoldConsumer<'r, C, ID, F>
source§type Folder = FoldFolder<'r, <C as Consumer<U>>::Folder, U, F>
type Folder = FoldFolder<'r, <C as Consumer<U>>::Folder, U, F>
The type of folder that this consumer can be converted into.
source§type Reducer = <C as Consumer<U>>::Reducer
type Reducer = <C as Consumer<U>>::Reducer
The type of reducer that is produced if this consumer is split.
source§type Result = <C as Consumer<U>>::Result
type Result = <C as Consumer<U>>::Result
The type of result that this consumer will ultimately produce.
source§fn split_at(self, index: usize) -> (Self, Self, Self::Reducer)
fn split_at(self, index: usize) -> (Self, Self, Self::Reducer)
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, U, T, C, ID, F> UnindexedConsumer<T> for FoldConsumer<'r, C, ID, F>
impl<'r, U, T, C, ID, F> UnindexedConsumer<T> for FoldConsumer<'r, C, ID, F>
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.
Auto Trait Implementations§
impl<'c, C, ID, F> Freeze for FoldConsumer<'c, C, ID, F>where
C: Freeze,
impl<'c, C, ID, F> RefUnwindSafe for FoldConsumer<'c, C, ID, F>
impl<'c, C, ID, F> Send for FoldConsumer<'c, C, ID, F>
impl<'c, C, ID, F> Sync for FoldConsumer<'c, C, ID, F>
impl<'c, C, ID, F> Unpin for FoldConsumer<'c, C, ID, F>where
C: Unpin,
impl<'c, C, ID, F> UnwindSafe for FoldConsumer<'c, C, ID, F>
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> 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