[][src]Trait amadeus::par_sink::DistributedSink

#[must_use]pub trait DistributedSink<Input> where
    <Self::ReduceC as Reducer<<Self::ReduceB as ReducerProcessSend<<Self::ReduceA as ReducerSend<<Self::Pipe as DistributedPipe<Input>>::Output>>::Done>>::Done>>::Done == Self::Done
{ type Done; type Pipe: DistributedPipe<Input>; type ReduceA: ReducerSend<<Self::Pipe as DistributedPipe<Input>>::Output> + ProcessSend + Clone + Send; type ReduceB: ReducerProcessSend<<Self::ReduceA as ReducerSend<<Self::Pipe as DistributedPipe<Input>>::Output>>::Done> + ProcessSend + Clone; type ReduceC: Reducer<<Self::ReduceB as ReducerProcessSend<<Self::ReduceA as ReducerSend<<Self::Pipe as DistributedPipe<Input>>::Output>>::Done>>::Done>; fn reducers(
        self
    ) -> (Self::Pipe, Self::ReduceA, Self::ReduceB, Self::ReduceC); }

Associated Types

Loading content...

Required methods

fn reducers(self) -> (Self::Pipe, Self::ReduceA, Self::ReduceB, Self::ReduceC)

Loading content...

Implementations on Foreign Types

impl<Input, R0, O0> DistributedSink<Input> for (R0,) where
    R0: DistributedSink<Input, Done = O0>, 
[src]

type Done = (O0,)

type Pipe = (<R0 as DistributedSink<Input>>::Pipe,)

type ReduceA = ReduceA1<<R0 as DistributedSink<Input>>::ReduceA>

type ReduceB = ReduceC1<<R0 as DistributedSink<Input>>::ReduceB>

type ReduceC = ReduceC1<<R0 as DistributedSink<Input>>::ReduceC>

impl<Input, R0, R1, R2, R3, O0, O1, O2, O3> DistributedSink<Input> for (R0, R1, R2, R3) where
    Input: Copy,
    R0: DistributedSink<Input, Done = O0>,
    R1: DistributedSink<Input, Done = O1>,
    R2: DistributedSink<Input, Done = O2>,
    R3: DistributedSink<Input, Done = O3>, 
[src]

type Done = (O0, O1, O2, O3)

type Pipe = (<R0 as DistributedSink<Input>>::Pipe, <R1 as DistributedSink<Input>>::Pipe, <R2 as DistributedSink<Input>>::Pipe, <R3 as DistributedSink<Input>>::Pipe)

type ReduceA = ReduceA4<<R0 as DistributedSink<Input>>::ReduceA, <R1 as DistributedSink<Input>>::ReduceA, <R2 as DistributedSink<Input>>::ReduceA, <R3 as DistributedSink<Input>>::ReduceA>

type ReduceB = ReduceC4<<R0 as DistributedSink<Input>>::ReduceB, <R1 as DistributedSink<Input>>::ReduceB, <R2 as DistributedSink<Input>>::ReduceB, <R3 as DistributedSink<Input>>::ReduceB>

type ReduceC = ReduceC4<<R0 as DistributedSink<Input>>::ReduceC, <R1 as DistributedSink<Input>>::ReduceC, <R2 as DistributedSink<Input>>::ReduceC, <R3 as DistributedSink<Input>>::ReduceC>

impl<Input, R0, R1, R2, O0, O1, O2> DistributedSink<Input> for (R0, R1, R2) where
    Input: Copy,
    R0: DistributedSink<Input, Done = O0>,
    R1: DistributedSink<Input, Done = O1>,
    R2: DistributedSink<Input, Done = O2>, 
[src]

type Done = (O0, O1, O2)

type Pipe = (<R0 as DistributedSink<Input>>::Pipe, <R1 as DistributedSink<Input>>::Pipe, <R2 as DistributedSink<Input>>::Pipe)

type ReduceA = ReduceA3<<R0 as DistributedSink<Input>>::ReduceA, <R1 as DistributedSink<Input>>::ReduceA, <R2 as DistributedSink<Input>>::ReduceA>

type ReduceB = ReduceC3<<R0 as DistributedSink<Input>>::ReduceB, <R1 as DistributedSink<Input>>::ReduceB, <R2 as DistributedSink<Input>>::ReduceB>

type ReduceC = ReduceC3<<R0 as DistributedSink<Input>>::ReduceC, <R1 as DistributedSink<Input>>::ReduceC, <R2 as DistributedSink<Input>>::ReduceC>

impl<Input, R0, R1, R2, R3, R4, R5, R6, O0, O1, O2, O3, O4, O5, O6> DistributedSink<Input> for (R0, R1, R2, R3, R4, R5, R6) where
    Input: Copy,
    R0: DistributedSink<Input, Done = O0>,
    R1: DistributedSink<Input, Done = O1>,
    R2: DistributedSink<Input, Done = O2>,
    R3: DistributedSink<Input, Done = O3>,
    R4: DistributedSink<Input, Done = O4>,
    R5: DistributedSink<Input, Done = O5>,
    R6: DistributedSink<Input, Done = O6>, 
[src]

type Done = (O0, O1, O2, O3, O4, O5, O6)

type Pipe = (<R0 as DistributedSink<Input>>::Pipe, <R1 as DistributedSink<Input>>::Pipe, <R2 as DistributedSink<Input>>::Pipe, <R3 as DistributedSink<Input>>::Pipe, <R4 as DistributedSink<Input>>::Pipe, <R5 as DistributedSink<Input>>::Pipe, <R6 as DistributedSink<Input>>::Pipe)

type ReduceA = ReduceA7<<R0 as DistributedSink<Input>>::ReduceA, <R1 as DistributedSink<Input>>::ReduceA, <R2 as DistributedSink<Input>>::ReduceA, <R3 as DistributedSink<Input>>::ReduceA, <R4 as DistributedSink<Input>>::ReduceA, <R5 as DistributedSink<Input>>::ReduceA, <R6 as DistributedSink<Input>>::ReduceA>

type ReduceB = ReduceC7<<R0 as DistributedSink<Input>>::ReduceB, <R1 as DistributedSink<Input>>::ReduceB, <R2 as DistributedSink<Input>>::ReduceB, <R3 as DistributedSink<Input>>::ReduceB, <R4 as DistributedSink<Input>>::ReduceB, <R5 as DistributedSink<Input>>::ReduceB, <R6 as DistributedSink<Input>>::ReduceB>

type ReduceC = ReduceC7<<R0 as DistributedSink<Input>>::ReduceC, <R1 as DistributedSink<Input>>::ReduceC, <R2 as DistributedSink<Input>>::ReduceC, <R3 as DistributedSink<Input>>::ReduceC, <R4 as DistributedSink<Input>>::ReduceC, <R5 as DistributedSink<Input>>::ReduceC, <R6 as DistributedSink<Input>>::ReduceC>

impl<Input, R0, R1, R2, R3, R4, R5, O0, O1, O2, O3, O4, O5> DistributedSink<Input> for (R0, R1, R2, R3, R4, R5) where
    Input: Copy,
    R0: DistributedSink<Input, Done = O0>,
    R1: DistributedSink<Input, Done = O1>,
    R2: DistributedSink<Input, Done = O2>,
    R3: DistributedSink<Input, Done = O3>,
    R4: DistributedSink<Input, Done = O4>,
    R5: DistributedSink<Input, Done = O5>, 
[src]

type Done = (O0, O1, O2, O3, O4, O5)

type Pipe = (<R0 as DistributedSink<Input>>::Pipe, <R1 as DistributedSink<Input>>::Pipe, <R2 as DistributedSink<Input>>::Pipe, <R3 as DistributedSink<Input>>::Pipe, <R4 as DistributedSink<Input>>::Pipe, <R5 as DistributedSink<Input>>::Pipe)

type ReduceA = ReduceA6<<R0 as DistributedSink<Input>>::ReduceA, <R1 as DistributedSink<Input>>::ReduceA, <R2 as DistributedSink<Input>>::ReduceA, <R3 as DistributedSink<Input>>::ReduceA, <R4 as DistributedSink<Input>>::ReduceA, <R5 as DistributedSink<Input>>::ReduceA>

type ReduceB = ReduceC6<<R0 as DistributedSink<Input>>::ReduceB, <R1 as DistributedSink<Input>>::ReduceB, <R2 as DistributedSink<Input>>::ReduceB, <R3 as DistributedSink<Input>>::ReduceB, <R4 as DistributedSink<Input>>::ReduceB, <R5 as DistributedSink<Input>>::ReduceB>

type ReduceC = ReduceC6<<R0 as DistributedSink<Input>>::ReduceC, <R1 as DistributedSink<Input>>::ReduceC, <R2 as DistributedSink<Input>>::ReduceC, <R3 as DistributedSink<Input>>::ReduceC, <R4 as DistributedSink<Input>>::ReduceC, <R5 as DistributedSink<Input>>::ReduceC>

impl<Input> DistributedSink<Input> for ()[src]

type Done = ()

type Pipe = ()

type ReduceA = ReduceA0

type ReduceB = ReduceC0

type ReduceC = ReduceC0

impl<Input, R0, R1, O0, O1> DistributedSink<Input> for (R0, R1) where
    Input: Copy,
    R0: DistributedSink<Input, Done = O0>,
    R1: DistributedSink<Input, Done = O1>, 
[src]

type Done = (O0, O1)

type Pipe = (<R0 as DistributedSink<Input>>::Pipe, <R1 as DistributedSink<Input>>::Pipe)

type ReduceA = ReduceA2<<R0 as DistributedSink<Input>>::ReduceA, <R1 as DistributedSink<Input>>::ReduceA>

type ReduceB = ReduceC2<<R0 as DistributedSink<Input>>::ReduceB, <R1 as DistributedSink<Input>>::ReduceB>

type ReduceC = ReduceC2<<R0 as DistributedSink<Input>>::ReduceC, <R1 as DistributedSink<Input>>::ReduceC>

impl<Input, R0, R1, R2, R3, R4, O0, O1, O2, O3, O4> DistributedSink<Input> for (R0, R1, R2, R3, R4) where
    Input: Copy,
    R0: DistributedSink<Input, Done = O0>,
    R1: DistributedSink<Input, Done = O1>,
    R2: DistributedSink<Input, Done = O2>,
    R3: DistributedSink<Input, Done = O3>,
    R4: DistributedSink<Input, Done = O4>, 
[src]

type Done = (O0, O1, O2, O3, O4)

type Pipe = (<R0 as DistributedSink<Input>>::Pipe, <R1 as DistributedSink<Input>>::Pipe, <R2 as DistributedSink<Input>>::Pipe, <R3 as DistributedSink<Input>>::Pipe, <R4 as DistributedSink<Input>>::Pipe)

type ReduceA = ReduceA5<<R0 as DistributedSink<Input>>::ReduceA, <R1 as DistributedSink<Input>>::ReduceA, <R2 as DistributedSink<Input>>::ReduceA, <R3 as DistributedSink<Input>>::ReduceA, <R4 as DistributedSink<Input>>::ReduceA>

type ReduceB = ReduceC5<<R0 as DistributedSink<Input>>::ReduceB, <R1 as DistributedSink<Input>>::ReduceB, <R2 as DistributedSink<Input>>::ReduceB, <R3 as DistributedSink<Input>>::ReduceB, <R4 as DistributedSink<Input>>::ReduceB>

type ReduceC = ReduceC5<<R0 as DistributedSink<Input>>::ReduceC, <R1 as DistributedSink<Input>>::ReduceC, <R2 as DistributedSink<Input>>::ReduceC, <R3 as DistributedSink<Input>>::ReduceC, <R4 as DistributedSink<Input>>::ReduceC>

impl<Input, R0, R1, R2, R3, R4, R5, R6, R7, O0, O1, O2, O3, O4, O5, O6, O7> DistributedSink<Input> for (R0, R1, R2, R3, R4, R5, R6, R7) where
    Input: Copy,
    R0: DistributedSink<Input, Done = O0>,
    R1: DistributedSink<Input, Done = O1>,
    R2: DistributedSink<Input, Done = O2>,
    R3: DistributedSink<Input, Done = O3>,
    R4: DistributedSink<Input, Done = O4>,
    R5: DistributedSink<Input, Done = O5>,
    R6: DistributedSink<Input, Done = O6>,
    R7: DistributedSink<Input, Done = O7>, 
[src]

type Done = (O0, O1, O2, O3, O4, O5, O6, O7)

type Pipe = (<R0 as DistributedSink<Input>>::Pipe, <R1 as DistributedSink<Input>>::Pipe, <R2 as DistributedSink<Input>>::Pipe, <R3 as DistributedSink<Input>>::Pipe, <R4 as DistributedSink<Input>>::Pipe, <R5 as DistributedSink<Input>>::Pipe, <R6 as DistributedSink<Input>>::Pipe, <R7 as DistributedSink<Input>>::Pipe)

type ReduceA = ReduceA8<<R0 as DistributedSink<Input>>::ReduceA, <R1 as DistributedSink<Input>>::ReduceA, <R2 as DistributedSink<Input>>::ReduceA, <R3 as DistributedSink<Input>>::ReduceA, <R4 as DistributedSink<Input>>::ReduceA, <R5 as DistributedSink<Input>>::ReduceA, <R6 as DistributedSink<Input>>::ReduceA, <R7 as DistributedSink<Input>>::ReduceA>

type ReduceB = ReduceC8<<R0 as DistributedSink<Input>>::ReduceB, <R1 as DistributedSink<Input>>::ReduceB, <R2 as DistributedSink<Input>>::ReduceB, <R3 as DistributedSink<Input>>::ReduceB, <R4 as DistributedSink<Input>>::ReduceB, <R5 as DistributedSink<Input>>::ReduceB, <R6 as DistributedSink<Input>>::ReduceB, <R7 as DistributedSink<Input>>::ReduceB>

type ReduceC = ReduceC8<<R0 as DistributedSink<Input>>::ReduceC, <R1 as DistributedSink<Input>>::ReduceC, <R2 as DistributedSink<Input>>::ReduceC, <R3 as DistributedSink<Input>>::ReduceC, <R4 as DistributedSink<Input>>::ReduceC, <R5 as DistributedSink<Input>>::ReduceC, <R6 as DistributedSink<Input>>::ReduceC, <R7 as DistributedSink<Input>>::ReduceC>

Loading content...

Implementors

impl<A, B, C, Input, RefAItem> DistributedSink<Input> for Fork<A, B, C, RefAItem> where
    A: DistributedPipe<Input>,
    B: DistributedSink<<A as DistributedPipe<Input>>::Output>,
    C: DistributedSink<RefAItem>,
    RefAItem: 'static, 
[src]

type Done = (<B as DistributedSink<<A as DistributedPipe<Input>>::Output>>::Done, <C as DistributedSink<RefAItem>>::Done)

type Pipe = Fork<A, <B as DistributedSink<<A as DistributedPipe<Input>>::Output>>::Pipe, <C as DistributedSink<RefAItem>>::Pipe, RefAItem>

type ReduceA = ReduceA2<<B as DistributedSink<<A as DistributedPipe<Input>>::Output>>::ReduceA, <C as DistributedSink<RefAItem>>::ReduceA>

type ReduceB = ReduceC2<<B as DistributedSink<<A as DistributedPipe<Input>>::Output>>::ReduceB, <C as DistributedSink<RefAItem>>::ReduceB>

type ReduceC = ReduceC2<<B as DistributedSink<<A as DistributedPipe<Input>>::Output>>::ReduceC, <C as DistributedSink<RefAItem>>::ReduceC>

impl<A, B, Input> DistributedSink<Input> for Pipe<A, B> where
    A: DistributedPipe<Input>,
    B: DistributedSink<<A as DistributedPipe<Input>>::Output>, 
[src]

type Done = <B as DistributedSink<<A as DistributedPipe<Input>>::Output>>::Done

type Pipe = Pipe<A, <B as DistributedSink<<A as DistributedPipe<Input>>::Output>>::Pipe>

type ReduceA = <B as DistributedSink<<A as DistributedPipe<Input>>::Output>>::ReduceA

type ReduceB = <B as DistributedSink<<A as DistributedPipe<Input>>::Output>>::ReduceB

type ReduceC = <B as DistributedSink<<A as DistributedPipe<Input>>::Output>>::ReduceC

impl<A, B, Input, T, U> DistributedSink<Input> for GroupBy<A, B> where
    A: DistributedPipe<Input, Output = (T, U)>,
    B: DistributedSink<U>,
    T: Eq + Hash + ProcessSend + 'static,
    <<B as DistributedSink<U>>::Pipe as DistributedPipe<U>>::Task: Clone,
    <<B as DistributedSink<U>>::Pipe as DistributedPipe<U>>::Task: ProcessSend,
    <<B as DistributedSink<U>>::Pipe as DistributedPipe<U>>::Task: 'static,
    <B as DistributedSink<U>>::ReduceA: Clone,
    <B as DistributedSink<U>>::ReduceA: ProcessSend,
    <B as DistributedSink<U>>::ReduceA: 'static,
    <B as DistributedSink<U>>::ReduceB: Clone,
    <B as DistributedSink<U>>::ReduceC: Clone,
    <B as DistributedSink<U>>::Done: ProcessSend,
    <B as DistributedSink<U>>::Done: 'static, 
[src]

type Done = HashMap<T, <B as DistributedSink<U>>::Done, RandomState>

type Pipe = A

type ReduceA = GroupByReducerA<<<B as DistributedSink<U>>::Pipe as DistributedPipe<U>>::Task, <B as DistributedSink<U>>::ReduceA, T, U>

type ReduceB = GroupByReducerB<<B as DistributedSink<U>>::ReduceB, T, <<B as DistributedSink<U>>::ReduceA as ReducerSend<<<B as DistributedSink<U>>::Pipe as DistributedPipe<U>>::Output>>::Done>

type ReduceC = GroupByReducerB<<B as DistributedSink<U>>::ReduceC, T, <<B as DistributedSink<U>>::ReduceB as ReducerProcessSend<<<B as DistributedSink<U>>::ReduceA as Reducer<<<B as DistributedSink<U>>::Pipe as DistributedPipe<U>>::Output>>::Done>>::Done>

impl<P, Input> DistributedSink<Input> for Count<P> where
    P: DistributedPipe<Input>, 
[src]

type Done = <<Count<P> as DistributedSink<Input>>::ReduceC as Reducer<<<Count<P> as DistributedSink<Input>>::ReduceB as Reducer<<<Count<P> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done>>::Done

type Pipe = P

type ReduceA = FolderSyncReducer<<P as DistributedPipe<Input>>::Output, CountFolder>

type ReduceB = FolderSyncReducer<<<Count<P> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done, SumFolder<usize>>

type ReduceC = FolderSyncReducer<<<Count<P> as DistributedSink<Input>>::ReduceB as Reducer<<<Count<P> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done, SumFolder<usize>>

impl<P, Input> DistributedSink<Input> for Histogram<P> where
    P: DistributedPipe<Input>,
    <P as DistributedPipe<Input>>::Output: Hash,
    <P as DistributedPipe<Input>>::Output: Ord,
    <P as DistributedPipe<Input>>::Output: ProcessSend,
    <P as DistributedPipe<Input>>::Output: 'static, 
[src]

type Done = <<Histogram<P> as DistributedSink<Input>>::ReduceC as Reducer<<<Histogram<P> as DistributedSink<Input>>::ReduceB as Reducer<<<Histogram<P> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done>>::Done

type Pipe = P

type ReduceA = FolderSyncReducer<<P as DistributedPipe<Input>>::Output, HistogramFolder<<P as DistributedPipe<Input>>::Output, StepA>>

type ReduceB = FolderSyncReducer<<<Histogram<P> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done, HistogramFolder<<P as DistributedPipe<Input>>::Output, StepB>>

type ReduceC = FolderSyncReducer<<<Histogram<P> as DistributedSink<Input>>::ReduceB as Reducer<<<Histogram<P> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done, HistogramFolder<<P as DistributedPipe<Input>>::Output, StepB>>

impl<P, Input> DistributedSink<Input> for Max<P> where
    P: DistributedPipe<Input>,
    <P as DistributedPipe<Input>>::Output: Ord,
    <P as DistributedPipe<Input>>::Output: ProcessSend,
    <P as DistributedPipe<Input>>::Output: 'static, 
[src]

type Done = <<Max<P> as DistributedSink<Input>>::ReduceC as Reducer<<<Max<P> as DistributedSink<Input>>::ReduceB as Reducer<<<Max<P> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done>>::Done

type Pipe = P

type ReduceA = FolderSyncReducer<<P as DistributedPipe<Input>>::Output, Max<<P as DistributedPipe<Input>>::Output>>

type ReduceB = FolderSyncReducer<<<Max<P> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done, Max<<P as DistributedPipe<Input>>::Output>>

type ReduceC = FolderSyncReducer<<<Max<P> as DistributedSink<Input>>::ReduceB as Reducer<<<Max<P> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done, Max<<P as DistributedPipe<Input>>::Output>>

impl<P, Input> DistributedSink<Input> for Min<P> where
    P: DistributedPipe<Input>,
    <P as DistributedPipe<Input>>::Output: Ord,
    <P as DistributedPipe<Input>>::Output: ProcessSend,
    <P as DistributedPipe<Input>>::Output: 'static, 
[src]

type Done = <<Min<P> as DistributedSink<Input>>::ReduceC as Reducer<<<Min<P> as DistributedSink<Input>>::ReduceB as Reducer<<<Min<P> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done>>::Done

type Pipe = P

type ReduceA = FolderSyncReducer<<P as DistributedPipe<Input>>::Output, Min<<P as DistributedPipe<Input>>::Output>>

type ReduceB = FolderSyncReducer<<<Min<P> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done, Min<<P as DistributedPipe<Input>>::Output>>

type ReduceC = FolderSyncReducer<<<Min<P> as DistributedSink<Input>>::ReduceB as Reducer<<<Min<P> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done, Min<<P as DistributedPipe<Input>>::Output>>

impl<P, Input> DistributedSink<Input> for MostFrequent<P> where
    P: DistributedPipe<Input>,
    <P as DistributedPipe<Input>>::Output: Clone,
    <P as DistributedPipe<Input>>::Output: Hash,
    <P as DistributedPipe<Input>>::Output: Eq,
    <P as DistributedPipe<Input>>::Output: ProcessSend,
    <P as DistributedPipe<Input>>::Output: 'static, 
[src]

impl<P, Input> DistributedSink<Input> for SampleUnstable<P> where
    P: DistributedPipe<Input>,
    <P as DistributedPipe<Input>>::Output: ProcessSend,
    <P as DistributedPipe<Input>>::Output: 'static, 
[src]

impl<P, Input, A, B> DistributedSink<Input> for MostDistinct<P> where
    A: Clone + Hash + Eq + ProcessSend + 'static,
    B: Hash + 'static,
    P: DistributedPipe<Input, Output = (A, B)>, 
[src]

impl<P, Input, B> DistributedSink<Input> for Sum<P, B> where
    B: Sum<<P as DistributedPipe<Input>>::Output> + Sum<B> + ProcessSend + 'static,
    P: DistributedPipe<Input>, 
[src]

type Done = <<Sum<P, B> as DistributedSink<Input>>::ReduceC as Reducer<<<Sum<P, B> as DistributedSink<Input>>::ReduceB as Reducer<<<Sum<P, B> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done>>::Done

type Pipe = P

type ReduceA = FolderSyncReducer<<P as DistributedPipe<Input>>::Output, SumFolder<B>>

type ReduceB = FolderSyncReducer<<<Sum<P, B> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done, SumFolder<B>>

type ReduceC = FolderSyncReducer<<<Sum<P, B> as DistributedSink<Input>>::ReduceB as Reducer<<<Sum<P, B> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done, SumFolder<B>>

impl<P, Input, F> DistributedSink<Input> for All<P, F> where
    F: FnMut<(<P as DistributedPipe<Input>>::Output,), Output = bool> + Clone + ProcessSend + 'static,
    P: DistributedPipe<Input>, 
[src]

type Done = bool

type Pipe = P

type ReduceA = AllReducer<<P as DistributedPipe<Input>>::Output, F>

type ReduceB = BoolAndReducer

type ReduceC = BoolAndReducer

impl<P, Input, F> DistributedSink<Input> for Any<P, F> where
    F: FnMut<(<P as DistributedPipe<Input>>::Output,), Output = bool> + Clone + ProcessSend + 'static,
    P: DistributedPipe<Input>, 
[src]

type Done = bool

type Pipe = P

type ReduceA = AnyReducer<<P as DistributedPipe<Input>>::Output, F>

type ReduceB = BoolOrReducer

type ReduceC = BoolOrReducer

impl<P, Input, F> DistributedSink<Input> for Combine<P, F> where
    F: FnMut<(<P as DistributedPipe<Input>>::Output, <P as DistributedPipe<Input>>::Output), Output = <P as DistributedPipe<Input>>::Output> + Clone + ProcessSend + 'static,
    P: DistributedPipe<Input>,
    <P as DistributedPipe<Input>>::Output: ProcessSend,
    <P as DistributedPipe<Input>>::Output: 'static, 
[src]

type Done = <<Combine<P, F> as DistributedSink<Input>>::ReduceC as Reducer<<<Combine<P, F> as DistributedSink<Input>>::ReduceB as Reducer<<<Combine<P, F> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done>>::Done

type Pipe = P

type ReduceA = FolderSyncReducer<<P as DistributedPipe<Input>>::Output, ReduceFn<F, <P as DistributedPipe<Input>>::Output>>

type ReduceB = FolderSyncReducer<<<Combine<P, F> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done, ReduceFn<F, <P as DistributedPipe<Input>>::Output>>

type ReduceC = FolderSyncReducer<<<Combine<P, F> as DistributedSink<Input>>::ReduceB as Reducer<<<Combine<P, F> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done, ReduceFn<F, <P as DistributedPipe<Input>>::Output>>

impl<P, Input, F> DistributedSink<Input> for ForEach<P, F> where
    F: FnMut<(<P as DistributedPipe<Input>>::Output,), Output = ()> + Clone + ProcessSend + 'static,
    P: DistributedPipe<Input>, 
[src]

type Done = ()

type Pipe = P

type ReduceA = ForEachReducer<<P as DistributedPipe<Input>>::Output, F>

type ReduceB = PushReducer<(), ()>

type ReduceC = PushReducer<(), ()>

impl<P, Input, F> DistributedSink<Input> for MaxBy<P, F> where
    F: for<'b, 'a> FnMut<(&'a <P as DistributedPipe<Input>>::Output, &'b <P as DistributedPipe<Input>>::Output), Output = Ordering> + Clone + ProcessSend + 'static,
    P: DistributedPipe<Input>,
    <P as DistributedPipe<Input>>::Output: ProcessSend,
    <P as DistributedPipe<Input>>::Output: 'static, 
[src]

type Done = <<MaxBy<P, F> as DistributedSink<Input>>::ReduceC as Reducer<<<MaxBy<P, F> as DistributedSink<Input>>::ReduceB as Reducer<<<MaxBy<P, F> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done>>::Done

type Pipe = P

type ReduceA = FolderSyncReducer<<P as DistributedPipe<Input>>::Output, MaxBy<<P as DistributedPipe<Input>>::Output, F>>

type ReduceB = FolderSyncReducer<<<MaxBy<P, F> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done, MaxBy<<P as DistributedPipe<Input>>::Output, F>>

type ReduceC = FolderSyncReducer<<<MaxBy<P, F> as DistributedSink<Input>>::ReduceB as Reducer<<<MaxBy<P, F> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done, MaxBy<<P as DistributedPipe<Input>>::Output, F>>

impl<P, Input, F> DistributedSink<Input> for MinBy<P, F> where
    F: for<'b, 'a> FnMut<(&'a <P as DistributedPipe<Input>>::Output, &'b <P as DistributedPipe<Input>>::Output), Output = Ordering> + Clone + ProcessSend + 'static,
    P: DistributedPipe<Input>,
    <P as DistributedPipe<Input>>::Output: ProcessSend,
    <P as DistributedPipe<Input>>::Output: 'static, 
[src]

type Done = <<MinBy<P, F> as DistributedSink<Input>>::ReduceC as Reducer<<<MinBy<P, F> as DistributedSink<Input>>::ReduceB as Reducer<<<MinBy<P, F> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done>>::Done

type Pipe = P

type ReduceA = FolderSyncReducer<<P as DistributedPipe<Input>>::Output, MinBy<<P as DistributedPipe<Input>>::Output, F>>

type ReduceB = FolderSyncReducer<<<MinBy<P, F> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done, MinBy<<P as DistributedPipe<Input>>::Output, F>>

type ReduceC = FolderSyncReducer<<<MinBy<P, F> as DistributedSink<Input>>::ReduceB as Reducer<<<MinBy<P, F> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done, MinBy<<P as DistributedPipe<Input>>::Output, F>>

impl<P, Input, F, B> DistributedSink<Input> for MaxByKey<P, F> where
    B: Ord + 'static,
    F: for<'a> FnMut<(&'a <P as DistributedPipe<Input>>::Output,), Output = B> + Clone + ProcessSend + 'static,
    P: DistributedPipe<Input>,
    <P as DistributedPipe<Input>>::Output: ProcessSend,
    <P as DistributedPipe<Input>>::Output: 'static, 
[src]

type Done = <<MaxByKey<P, F> as DistributedSink<Input>>::ReduceC as Reducer<<<MaxByKey<P, F> as DistributedSink<Input>>::ReduceB as Reducer<<<MaxByKey<P, F> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done>>::Done

type Pipe = P

type ReduceA = FolderSyncReducer<<P as DistributedPipe<Input>>::Output, MaxByKey<<P as DistributedPipe<Input>>::Output, F, B>>

type ReduceB = FolderSyncReducer<<<MaxByKey<P, F> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done, MaxByKey<<P as DistributedPipe<Input>>::Output, F, B>>

type ReduceC = FolderSyncReducer<<<MaxByKey<P, F> as DistributedSink<Input>>::ReduceB as Reducer<<<MaxByKey<P, F> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done, MaxByKey<<P as DistributedPipe<Input>>::Output, F, B>>

impl<P, Input, F, B> DistributedSink<Input> for MinByKey<P, F> where
    B: Ord + 'static,
    F: for<'a> FnMut<(&'a <P as DistributedPipe<Input>>::Output,), Output = B> + Clone + ProcessSend + 'static,
    P: DistributedPipe<Input>,
    <P as DistributedPipe<Input>>::Output: ProcessSend,
    <P as DistributedPipe<Input>>::Output: 'static, 
[src]

type Done = <<MinByKey<P, F> as DistributedSink<Input>>::ReduceC as Reducer<<<MinByKey<P, F> as DistributedSink<Input>>::ReduceB as Reducer<<<MinByKey<P, F> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done>>::Done

type Pipe = P

type ReduceA = FolderSyncReducer<<P as DistributedPipe<Input>>::Output, MinByKey<<P as DistributedPipe<Input>>::Output, F, B>>

type ReduceB = FolderSyncReducer<<<MinByKey<P, F> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done, MinByKey<<P as DistributedPipe<Input>>::Output, F, B>>

type ReduceC = FolderSyncReducer<<<MinByKey<P, F> as DistributedSink<Input>>::ReduceB as Reducer<<<MinByKey<P, F> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done, MinByKey<<P as DistributedPipe<Input>>::Output, F, B>>

impl<P, Input, ID, F, B> DistributedSink<Input> for Fold<P, ID, F, B> where
    B: ProcessSend + 'static,
    F: FnMut<(B, Either<<P as DistributedPipe<Input>>::Output, B>), Output = B> + Clone + ProcessSend + 'static,
    ID: FnMut<(), Output = B> + Clone + ProcessSend + 'static,
    P: DistributedPipe<Input>, 
[src]

type Done = <<Fold<P, ID, F, B> as DistributedSink<Input>>::ReduceC as Reducer<<<Fold<P, ID, F, B> as DistributedSink<Input>>::ReduceB as Reducer<<<Fold<P, ID, F, B> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done>>::Done

type Pipe = P

type ReduceA = FolderSyncReducer<<P as DistributedPipe<Input>>::Output, FoldFolder<<P as DistributedPipe<Input>>::Output, ID, F, B, StepA>>

type ReduceB = FolderSyncReducer<<<Fold<P, ID, F, B> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done, FoldFolder<<P as DistributedPipe<Input>>::Output, ID, F, B, StepB>>

type ReduceC = FolderSyncReducer<<<Fold<P, ID, F, B> as DistributedSink<Input>>::ReduceB as Reducer<<<Fold<P, ID, F, B> as DistributedSink<Input>>::ReduceA as Reducer<<P as DistributedPipe<Input>>::Output>>::Done>>::Done, FoldFolder<<P as DistributedPipe<Input>>::Output, ID, F, B, StepB>>

impl<P, Input, T> DistributedSink<Input> for Collect<P, T> where
    P: DistributedPipe<Input>,
    T: FromDistributedStream<<P as DistributedPipe<Input>>::Output>, 
[src]

type Done = T

type Pipe = P

type ReduceA = <T as FromDistributedStream<<P as DistributedPipe<Input>>::Output>>::ReduceA

type ReduceB = <T as FromDistributedStream<<P as DistributedPipe<Input>>::Output>>::ReduceB

type ReduceC = <T as FromDistributedStream<<P as DistributedPipe<Input>>::Output>>::ReduceC

Loading content...