Trait git_features::parallel::reduce::Reduce [−][src]
pub trait Reduce { type Input; type FeedProduce; type Output; type Error; fn feed(
&mut self,
item: Self::Input
) -> Result<Self::FeedProduce, Self::Error>; fn finalize(self) -> Result<Self::Output, Self::Error>; }
An trait for aggregating items commonly produced in threads into a single result, without itself needing to be thread safe.
Associated Types
type Input
[src]
The type fed to the reducer in the feed()
method.
It’s produced by a function that may run on multiple threads.
type FeedProduce
[src]
The type produced in Ok(…) by feed()
.
Most reducers by nature use ()
here as the value is in the aggregation.
However, some may use it to collect statistics only and return their Input
in some form as a result here for Stepwise
to be useful.
type Output
[src]
The type produced once by the finalize()
method.
For traditional reducers, this is the value produced by the entire operation. For those made for step-wise iteration this may be aggregated statistics.
type Error
[src]
The error type to use for all methods of this trait.
Required methods
fn feed(&mut self, item: Self::Input) -> Result<Self::FeedProduce, Self::Error>
[src]
Called each time a new item
was produced in order to aggregate it into the final result.
If an Error
is returned, the entire operation will be stopped.
fn finalize(self) -> Result<Self::Output, Self::Error>
[src]
Called once once all items where passed to feed()
, producing the final Output
of the operation or an Error
.
Implementors
impl<Input, Error> Reduce for IdentityWithResult<Input, Error>
[src]
impl<Input, Error> Reduce for IdentityWithResult<Input, Error>
[src]