[−][src]Trait amadeus_core::par_sink::DistributedSink
Associated Types
type Done
type Pipe: DistributedPipe<Input>
type ReduceA: ReducerSend<<Self::Pipe as DistributedPipe<Input>>::Output> + Clone + ProcessSend + Send
type ReduceB: ReducerProcessSend<<Self::ReduceA as ReducerSend<<Self::Pipe as DistributedPipe<Input>>::Output>>::Done> + Clone + ProcessSend
type ReduceC: Reducer<<Self::ReduceB as ReducerProcessSend<<Self::ReduceA as ReducerSend<<Self::Pipe as DistributedPipe<Input>>::Output>>::Done>>::Done, Done = Self::Done>
Required methods
Loading content...Implementations on Foreign Types
impl<Input> DistributedSink<Input> for () where
Input: ,
[src]
Input: ,
type Done = ()
type Pipe = ()
type ReduceA = ReduceA0
type ReduceB = ReduceC0
type ReduceC = ReduceC0
fn reducers(self) -> (Self::Pipe, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<Input, R0: DistributedSink<Input, Done = O0>, O0> DistributedSink<Input> for (R0,) where
Input: ,
[src]
Input: ,
type Done = (O0,)
type Pipe = (R0::Pipe,)
type ReduceA = ReduceA1<R0::ReduceA>
type ReduceB = ReduceC1<R0::ReduceB>
type ReduceC = ReduceC1<R0::ReduceC>
fn reducers(self) -> (Self::Pipe, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<Input, R0: DistributedSink<Input, Done = O0>, R1: DistributedSink<Input, Done = O1>, O0, O1> DistributedSink<Input> for (R0, R1) where
Input: Copy,
[src]
Input: Copy,
type Done = (O0, O1)
type Pipe = (R0::Pipe, R1::Pipe)
type ReduceA = ReduceA2<R0::ReduceA, R1::ReduceA>
type ReduceB = ReduceC2<R0::ReduceB, R1::ReduceB>
type ReduceC = ReduceC2<R0::ReduceC, R1::ReduceC>
fn reducers(self) -> (Self::Pipe, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<Input, R0: DistributedSink<Input, Done = O0>, R1: DistributedSink<Input, Done = O1>, R2: DistributedSink<Input, Done = O2>, O0, O1, O2> DistributedSink<Input> for (R0, R1, R2) where
Input: Copy,
[src]
Input: Copy,
type Done = (O0, O1, O2)
type Pipe = (R0::Pipe, R1::Pipe, R2::Pipe)
type ReduceA = ReduceA3<R0::ReduceA, R1::ReduceA, R2::ReduceA>
type ReduceB = ReduceC3<R0::ReduceB, R1::ReduceB, R2::ReduceB>
type ReduceC = ReduceC3<R0::ReduceC, R1::ReduceC, R2::ReduceC>
fn reducers(self) -> (Self::Pipe, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<Input, R0: DistributedSink<Input, Done = O0>, R1: DistributedSink<Input, Done = O1>, R2: DistributedSink<Input, Done = O2>, R3: DistributedSink<Input, Done = O3>, O0, O1, O2, O3> DistributedSink<Input> for (R0, R1, R2, R3) where
Input: Copy,
[src]
Input: Copy,
type Done = (O0, O1, O2, O3)
type Pipe = (R0::Pipe, R1::Pipe, R2::Pipe, R3::Pipe)
type ReduceA = ReduceA4<R0::ReduceA, R1::ReduceA, R2::ReduceA, R3::ReduceA>
type ReduceB = ReduceC4<R0::ReduceB, R1::ReduceB, R2::ReduceB, R3::ReduceB>
type ReduceC = ReduceC4<R0::ReduceC, R1::ReduceC, R2::ReduceC, R3::ReduceC>
fn reducers(self) -> (Self::Pipe, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<Input, 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>, O0, O1, O2, O3, O4> DistributedSink<Input> for (R0, R1, R2, R3, R4) where
Input: Copy,
[src]
Input: Copy,
type Done = (O0, O1, O2, O3, O4)
type Pipe = (R0::Pipe, R1::Pipe, R2::Pipe, R3::Pipe, R4::Pipe)
type ReduceA = ReduceA5<R0::ReduceA, R1::ReduceA, R2::ReduceA, R3::ReduceA, R4::ReduceA>
type ReduceB = ReduceC5<R0::ReduceB, R1::ReduceB, R2::ReduceB, R3::ReduceB, R4::ReduceB>
type ReduceC = ReduceC5<R0::ReduceC, R1::ReduceC, R2::ReduceC, R3::ReduceC, R4::ReduceC>
fn reducers(self) -> (Self::Pipe, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<Input, 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>, O0, O1, O2, O3, O4, O5> DistributedSink<Input> for (R0, R1, R2, R3, R4, R5) where
Input: Copy,
[src]
Input: Copy,
type Done = (O0, O1, O2, O3, O4, O5)
type Pipe = (R0::Pipe, R1::Pipe, R2::Pipe, R3::Pipe, R4::Pipe, R5::Pipe)
type ReduceA = ReduceA6<R0::ReduceA, R1::ReduceA, R2::ReduceA, R3::ReduceA, R4::ReduceA, R5::ReduceA>
type ReduceB = ReduceC6<R0::ReduceB, R1::ReduceB, R2::ReduceB, R3::ReduceB, R4::ReduceB, R5::ReduceB>
type ReduceC = ReduceC6<R0::ReduceC, R1::ReduceC, R2::ReduceC, R3::ReduceC, R4::ReduceC, R5::ReduceC>
fn reducers(self) -> (Self::Pipe, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<Input, 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>, O0, O1, O2, O3, O4, O5, O6> DistributedSink<Input> for (R0, R1, R2, R3, R4, R5, R6) where
Input: Copy,
[src]
Input: Copy,
type Done = (O0, O1, O2, O3, O4, O5, O6)
type Pipe = (R0::Pipe, R1::Pipe, R2::Pipe, R3::Pipe, R4::Pipe, R5::Pipe, R6::Pipe)
type ReduceA = ReduceA7<R0::ReduceA, R1::ReduceA, R2::ReduceA, R3::ReduceA, R4::ReduceA, R5::ReduceA, R6::ReduceA>
type ReduceB = ReduceC7<R0::ReduceB, R1::ReduceB, R2::ReduceB, R3::ReduceB, R4::ReduceB, R5::ReduceB, R6::ReduceB>
type ReduceC = ReduceC7<R0::ReduceC, R1::ReduceC, R2::ReduceC, R3::ReduceC, R4::ReduceC, R5::ReduceC, R6::ReduceC>
fn reducers(self) -> (Self::Pipe, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<Input, 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>, O0, O1, O2, O3, O4, O5, O6, O7> DistributedSink<Input> for (R0, R1, R2, R3, R4, R5, R6, R7) where
Input: Copy,
[src]
Input: Copy,
type Done = (O0, O1, O2, O3, O4, O5, O6, O7)
type Pipe = (R0::Pipe, R1::Pipe, R2::Pipe, R3::Pipe, R4::Pipe, R5::Pipe, R6::Pipe, R7::Pipe)
type ReduceA = ReduceA8<R0::ReduceA, R1::ReduceA, R2::ReduceA, R3::ReduceA, R4::ReduceA, R5::ReduceA, R6::ReduceA, R7::ReduceA>
type ReduceB = ReduceC8<R0::ReduceB, R1::ReduceB, R2::ReduceB, R3::ReduceB, R4::ReduceB, R5::ReduceB, R6::ReduceB, R7::ReduceB>
type ReduceC = ReduceC8<R0::ReduceC, R1::ReduceC, R2::ReduceC, R3::ReduceC, R4::ReduceC, R5::ReduceC, R6::ReduceC, R7::ReduceC>
fn reducers(self) -> (Self::Pipe, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
Implementors
impl<A, B, C, Input, RefAItem> DistributedSink<Input> for Fork<A, B, C, RefAItem> where
A: DistributedPipe<Input>,
B: DistributedSink<A::Output>,
C: DistributedSink<RefAItem>,
RefAItem: 'static,
[src]
A: DistributedPipe<Input>,
B: DistributedSink<A::Output>,
C: DistributedSink<RefAItem>,
RefAItem: 'static,
type Done = (B::Done, C::Done)
type Pipe = Fork<A, B::Pipe, C::Pipe, RefAItem>
type ReduceA = ReduceA2<B::ReduceA, C::ReduceA>
type ReduceB = ReduceC2<B::ReduceB, C::ReduceB>
type ReduceC = ReduceC2<B::ReduceC, C::ReduceC>
fn reducers(self) -> (Self::Pipe, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<A: DistributedPipe<Input>, B: DistributedSink<A::Output>, Input> DistributedSink<Input> for Pipe<A, B>
[src]
type Done = B::Done
type Pipe = Pipe<A, B::Pipe>
type ReduceA = B::ReduceA
type ReduceB = B::ReduceB
type ReduceC = B::ReduceC
fn reducers(self) -> (Self::Pipe, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<A: DistributedPipe<Input, Output = (T, U)>, B: DistributedSink<U>, Input, T, U> DistributedSink<Input> for GroupBy<A, B> where
T: Eq + Hash + ProcessSend + 'static,
<B::Pipe as DistributedPipe<U>>::Task: Clone + ProcessSend + 'static,
B::ReduceA: Clone + ProcessSend + 'static,
B::ReduceB: Clone,
B::ReduceC: Clone,
B::Done: ProcessSend + 'static,
[src]
T: Eq + Hash + ProcessSend + 'static,
<B::Pipe as DistributedPipe<U>>::Task: Clone + ProcessSend + 'static,
B::ReduceA: Clone + ProcessSend + 'static,
B::ReduceB: Clone,
B::ReduceC: Clone,
B::Done: ProcessSend + 'static,
type Done = HashMap<T, B::Done>
type Pipe = A
type ReduceA = GroupByReducerA<<B::Pipe as DistributedPipe<U>>::Task, B::ReduceA, T, U>
type ReduceB = GroupByReducerB<B::ReduceB, T, <B::ReduceA as ReducerSend<<B::Pipe as DistributedPipe<U>>::Output>>::Done>
type ReduceC = GroupByReducerB<B::ReduceC, T, <B::ReduceB as ReducerProcessSend<<B::ReduceA as Reducer<<B::Pipe as DistributedPipe<U>>::Output>>::Done>>::Done>
fn reducers(self) -> (Self::Pipe, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<P: DistributedPipe<Input>, Input, F> DistributedSink<Input> for All<P, F> where
F: FnMut<(P::Output,), Output = bool> + Clone + ProcessSend + 'static,
[src]
F: FnMut<(P::Output,), Output = bool> + Clone + ProcessSend + 'static,
type Done = bool
type Pipe = P
type ReduceA = AllReducer<P::Output, F>
type ReduceB = BoolAndReducer
type ReduceC = BoolAndReducer
fn reducers(self) -> (Self::Pipe, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<P: DistributedPipe<Input>, Input, F> DistributedSink<Input> for Any<P, F> where
F: FnMut<(P::Output,), Output = bool> + Clone + ProcessSend + 'static,
[src]
F: FnMut<(P::Output,), Output = bool> + Clone + ProcessSend + 'static,
type Done = bool
type Pipe = P
type ReduceA = AnyReducer<P::Output, F>
type ReduceB = BoolOrReducer
type ReduceC = BoolOrReducer
fn reducers(self) -> (Self::Pipe, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<P: DistributedPipe<Input>, Input, F> DistributedSink<Input> for ForEach<P, F> where
F: FnMut<(P::Output,), Output = ()> + Clone + ProcessSend + 'static,
[src]
F: FnMut<(P::Output,), Output = ()> + Clone + ProcessSend + 'static,
type Done = ()
type Pipe = P
type ReduceA = ForEachReducer<P::Output, F>
type ReduceB = PushReducer<()>
type ReduceC = PushReducer<()>
fn reducers(self) -> (Self::Pipe, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<P: DistributedPipe<Input>, Input, T: FromDistributedStream<P::Output>> DistributedSink<Input> for Collect<P, T>
[src]
type Done = T
type Pipe = P
type ReduceA = T::ReduceA
type ReduceB = T::ReduceB
type ReduceC = T::ReduceC
fn reducers(self) -> (Self::Pipe, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<P: ParallelPipe<Input>, Input> DistributedSink<Input> for Count<P>
[src]
type Done = <Self::ReduceC as Reducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done>>::Done
type Pipe = P
type ReduceA = FolderSyncReducer<P::Output, CountFolder>
type ReduceB = FolderSyncReducer<<Self::ReduceA as Reducer<P::Output>>::Done, SumFolder<usize>>
type ReduceC = FolderSyncReducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done, SumFolder<usize>>
fn reducers(self) -> (P, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<P: ParallelPipe<Input>, Input> DistributedSink<Input> for Histogram<P> where
P::Output: Hash + Ord + Send + 'static,
[src]
P::Output: Hash + Ord + Send + 'static,
type Done = <Self::ReduceC as Reducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done>>::Done
type Pipe = P
type ReduceA = FolderSyncReducer<P::Output, HistogramFolder<P::Output, StepA>>
type ReduceB = FolderSyncReducer<<Self::ReduceA as Reducer<P::Output>>::Done, HistogramFolder<P::Output, StepB>>
type ReduceC = FolderSyncReducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done, HistogramFolder<P::Output, StepB>>
fn reducers(self) -> (P, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<P: ParallelPipe<Input>, Input> DistributedSink<Input> for Max<P> where
P::Output: Ord + Send + 'static,
[src]
P::Output: Ord + Send + 'static,
type Done = <Self::ReduceC as Reducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done>>::Done
type Pipe = P
type ReduceA = FolderSyncReducer<P::Output, Max<P::Output>>
type ReduceB = FolderSyncReducer<<Self::ReduceA as Reducer<P::Output>>::Done, Max<P::Output>>
type ReduceC = FolderSyncReducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done, Max<P::Output>>
fn reducers(self) -> (P, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<P: ParallelPipe<Input>, Input> DistributedSink<Input> for Min<P> where
P::Output: Ord + Send + 'static,
[src]
P::Output: Ord + Send + 'static,
type Done = <Self::ReduceC as Reducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done>>::Done
type Pipe = P
type ReduceA = FolderSyncReducer<P::Output, Min<P::Output>>
type ReduceB = FolderSyncReducer<<Self::ReduceA as Reducer<P::Output>>::Done, Min<P::Output>>
type ReduceC = FolderSyncReducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done, Min<P::Output>>
fn reducers(self) -> (P, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<P: ParallelPipe<Input>, Input> DistributedSink<Input> for MostFrequent<P> where
P::Output: Clone + Hash + Eq + Send + 'static,
[src]
P::Output: Clone + Hash + Eq + Send + 'static,
type Done = <Self::ReduceC as Reducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done>>::Done
type Pipe = P
type ReduceA = FolderSyncReducer<P::Output, MostFrequentFolder>
type ReduceB = FolderSyncReducer<<Self::ReduceA as Reducer<P::Output>>::Done, SumZeroFolder<Top<P::Output, usize>>>
type ReduceC = FolderSyncReducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done, SumZeroFolder<Top<P::Output, usize>>>
fn reducers(self) -> (P, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<P: ParallelPipe<Input>, Input> DistributedSink<Input> for SampleUnstable<P> where
P::Output: Send + 'static,
[src]
P::Output: Send + 'static,
type Done = <Self::ReduceC as Reducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done>>::Done
type Pipe = P
type ReduceA = FolderSyncReducer<P::Output, SampleUnstableFolder>
type ReduceB = FolderSyncReducer<<Self::ReduceA as Reducer<P::Output>>::Done, SumFolder<SASampleUnstable<P::Output>>>
type ReduceC = FolderSyncReducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done, SumFolder<SASampleUnstable<P::Output>>>
fn reducers(self) -> (P, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<P: ParallelPipe<Input>, Input, B> DistributedSink<Input> for Sum<P, B> where
B: Sum<P::Output> + Sum<B> + Send + 'static,
[src]
B: Sum<P::Output> + Sum<B> + Send + 'static,
type Done = <Self::ReduceC as Reducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done>>::Done
type Pipe = P
type ReduceA = FolderSyncReducer<P::Output, SumFolder<B>>
type ReduceB = FolderSyncReducer<<Self::ReduceA as Reducer<P::Output>>::Done, SumFolder<B>>
type ReduceC = FolderSyncReducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done, SumFolder<B>>
fn reducers(self) -> (P, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<P: ParallelPipe<Input>, Input, F> DistributedSink<Input> for Combine<P, F> where
F: FnMut<(P::Output, P::Output), Output = P::Output> + Clone + Send + 'static,
P::Output: Send + 'static,
[src]
F: FnMut<(P::Output, P::Output), Output = P::Output> + Clone + Send + 'static,
P::Output: Send + 'static,
type Done = <Self::ReduceC as Reducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done>>::Done
type Pipe = P
type ReduceA = FolderSyncReducer<P::Output, ReduceFn<F, P::Output>>
type ReduceB = FolderSyncReducer<<Self::ReduceA as Reducer<P::Output>>::Done, ReduceFn<F, P::Output>>
type ReduceC = FolderSyncReducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done, ReduceFn<F, P::Output>>
fn reducers(self) -> (P, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<P: ParallelPipe<Input>, Input, F> DistributedSink<Input> for MaxBy<P, F> where
F: for<'a, 'b> FnMut<(&'a P::Output, &'b P::Output), Output = Ordering> + Clone + Send + 'static,
P::Output: Send + 'static,
[src]
F: for<'a, 'b> FnMut<(&'a P::Output, &'b P::Output), Output = Ordering> + Clone + Send + 'static,
P::Output: Send + 'static,
type Done = <Self::ReduceC as Reducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done>>::Done
type Pipe = P
type ReduceA = FolderSyncReducer<P::Output, MaxBy<P::Output, F>>
type ReduceB = FolderSyncReducer<<Self::ReduceA as Reducer<P::Output>>::Done, MaxBy<P::Output, F>>
type ReduceC = FolderSyncReducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done, MaxBy<P::Output, F>>
fn reducers(self) -> (P, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<P: ParallelPipe<Input>, Input, F> DistributedSink<Input> for MinBy<P, F> where
F: for<'a, 'b> FnMut<(&'a P::Output, &'b P::Output), Output = Ordering> + Clone + Send + 'static,
P::Output: Send + 'static,
[src]
F: for<'a, 'b> FnMut<(&'a P::Output, &'b P::Output), Output = Ordering> + Clone + Send + 'static,
P::Output: Send + 'static,
type Done = <Self::ReduceC as Reducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done>>::Done
type Pipe = P
type ReduceA = FolderSyncReducer<P::Output, MinBy<P::Output, F>>
type ReduceB = FolderSyncReducer<<Self::ReduceA as Reducer<P::Output>>::Done, MinBy<P::Output, F>>
type ReduceC = FolderSyncReducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done, MinBy<P::Output, F>>
fn reducers(self) -> (P, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<P: ParallelPipe<Input>, Input, F, B> DistributedSink<Input> for MaxByKey<P, F> where
F: for<'a> FnMut<(&'a P::Output,), Output = B> + Clone + Send + 'static,
B: Ord + 'static,
P::Output: Send + 'static,
[src]
F: for<'a> FnMut<(&'a P::Output,), Output = B> + Clone + Send + 'static,
B: Ord + 'static,
P::Output: Send + 'static,
type Done = <Self::ReduceC as Reducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done>>::Done
type Pipe = P
type ReduceA = FolderSyncReducer<P::Output, MaxByKey<P::Output, F, B>>
type ReduceB = FolderSyncReducer<<Self::ReduceA as Reducer<P::Output>>::Done, MaxByKey<P::Output, F, B>>
type ReduceC = FolderSyncReducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done, MaxByKey<P::Output, F, B>>
fn reducers(self) -> (P, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<P: ParallelPipe<Input>, Input, F, B> DistributedSink<Input> for MinByKey<P, F> where
F: for<'a> FnMut<(&'a P::Output,), Output = B> + Clone + Send + 'static,
B: Ord + 'static,
P::Output: Send + 'static,
[src]
F: for<'a> FnMut<(&'a P::Output,), Output = B> + Clone + Send + 'static,
B: Ord + 'static,
P::Output: Send + 'static,
type Done = <Self::ReduceC as Reducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done>>::Done
type Pipe = P
type ReduceA = FolderSyncReducer<P::Output, MinByKey<P::Output, F, B>>
type ReduceB = FolderSyncReducer<<Self::ReduceA as Reducer<P::Output>>::Done, MinByKey<P::Output, F, B>>
type ReduceC = FolderSyncReducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done, MinByKey<P::Output, F, B>>
fn reducers(self) -> (P, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<P: ParallelPipe<Input>, Input, ID, F, B> DistributedSink<Input> for Fold<P, ID, F, B> where
ID: FnMut<(), Output = B> + Clone + Send + 'static,
F: FnMut<(B, Either<P::Output, B>), Output = B> + Clone + Send + 'static,
B: Send + 'static,
[src]
ID: FnMut<(), Output = B> + Clone + Send + 'static,
F: FnMut<(B, Either<P::Output, B>), Output = B> + Clone + Send + 'static,
B: Send + 'static,
type Done = <Self::ReduceC as Reducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done>>::Done
type Pipe = P
type ReduceA = FolderSyncReducer<P::Output, FoldFolder<P::Output, ID, F, B, StepA>>
type ReduceB = FolderSyncReducer<<Self::ReduceA as Reducer<P::Output>>::Done, FoldFolder<P::Output, ID, F, B, StepB>>
type ReduceC = FolderSyncReducer<<Self::ReduceB as Reducer<<Self::ReduceA as Reducer<P::Output>>::Done>>::Done, FoldFolder<P::Output, ID, F, B, StepB>>
fn reducers(self) -> (P, Self::ReduceA, Self::ReduceB, Self::ReduceC)
[src]
impl<P: ParallelPipe<Input, Output = (A, B)>, Input, A, B> DistributedSink<Input> for MostDistinct<P> where
A: Clone + Hash + Eq + Send + 'static,
B: Hash + 'static,
[src]
A: Clone + Hash + Eq + Send + 'static,
B: Hash + 'static,