Trait rayon::par_iter::internal::Consumer
[−]
[src]
pub trait Consumer<Item>: Send + Sized { type Folder: Folder<Item, Result=Self::Result>; type Reducer: Reducer<Self::Result>; type Result: Send; fn cost(&mut self, producer_cost: f64) -> f64; fn split_at(self, index: usize) -> (Self, Self, Self::Reducer); fn into_folder(self) -> Self::Folder; fn weighted(&self) -> bool { ... } fn full(&self) -> bool { ... } }
A consumer which consumes items that are fed to it.
Associated Types
Required Methods
fn cost(&mut self, producer_cost: f64) -> f64
If it costs producer_cost
to produce the items we will
consume, returns cost adjusted to account for consuming them.
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.
fn into_folder(self) -> Self::Folder
Convert the consumer into a folder that can consume items sequentially, eventually producing a final result.
Provided Methods
fn weighted(&self) -> bool
Reports whether the consumer has explicit weights.
fn full(&self) -> bool
Hint whether this Consumer
would like to stop processing
further items, e.g. if a search has been completed.
Implementors
impl<'r, U, T, C, IDENTITY, FOLD_OP> Consumer<T> for FoldConsumer<'r, C, IDENTITY, FOLD_OP> where C: Consumer<U>,
FOLD_OP: Fn(U, T) -> U + Sync,
IDENTITY: Fn() -> U + Sync,
U: Sendimpl<ITEM> Consumer<ITEM> for NoopConsumer