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.

Loading content...

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.

Loading content...

Implementors

impl<Input, Error> Reduce for IdentityWithResult<Input, Error>[src]

type Input = Result<Input, Self::Error>

type FeedProduce = Input

type Output = ()

type Error = Error

fn feed(&mut self, item: Self::Input) -> Result<Self::FeedProduce, Self::Error>[src]

fn finalize(self) -> Result<Self::Output, Self::Error>[src]

Loading content...