Trait rayon::iter::plumbing::Folder [−][src]
pub trait Folder<Item>: Sized { type Result; fn consume(self, item: Item) -> Self; fn complete(self) -> Self::Result; fn full(&self) -> bool; fn consume_iter<I>(self, iter: I) -> Self
where
I: IntoIterator<Item = Item>, { ... } }
The Folder
trait encapsulates the standard fold
operation. It can be fed many items using the consume
method. At the end, once all items have been consumed, it can then
be converted (using complete
) into a final value.
Associated Types
Loading content...Required methods
fn consume(self, item: Item) -> Self
[src]
Consume next item and return new sequential state.
fn complete(self) -> Self::Result
[src]
Finish consuming items, produce final result.
fn full(&self) -> bool
[src]
Hint whether this Folder
would like to stop processing
further items, e.g. if a search has been completed.
Provided methods
fn consume_iter<I>(self, iter: I) -> Self where
I: IntoIterator<Item = Item>,
[src]
I: IntoIterator<Item = Item>,
Consume items from the iterator until full, and return new sequential state.
This method is optional. The default simply iterates over
iter
, invoking consume
and checking after each iteration
whether full
returns false.
The main reason to override it is if you can provide a more specialized, efficient implementation.