Trait timely::dataflow::channels::pact::ParallelizationContract
[−]
[src]
pub trait ParallelizationContract<T: 'static, D: 'static> { type Pusher: Push<(T, Content<D>)> + 'static; type Puller: Pull<(T, Content<D>)> + 'static; fn connect<A: Allocate>(
self,
allocator: &mut A,
identifier: usize
) -> (Self::Pusher, Self::Puller); }
A ParallelizationContract
allocates paired Push
and Pull
implementors.
Associated Types
type Pusher: Push<(T, Content<D>)> + 'static
Type implementing Push
produced by this pact.
type Puller: Pull<(T, Content<D>)> + 'static
Type implementing Pull
produced by this pact.
Required Methods
fn connect<A: Allocate>(
self,
allocator: &mut A,
identifier: usize
) -> (Self::Pusher, Self::Puller)
self,
allocator: &mut A,
identifier: usize
) -> (Self::Pusher, Self::Puller)
Alloctes a matched pair of push and pull endpoints implementing the pact.
Implementors
impl<T: 'static, D: 'static> ParallelizationContract<T, D> for Pipeline type Pusher = Pusher<T, D, ThreadPusher<Message<T, D>>>; type Puller = Puller<T, D, ThreadPuller<Message<T, D>>>;
impl<T: Eq + Data + Abomonation, D: Data + Abomonation, F: Fn(&D) -> u64 + 'static> ParallelizationContract<T, D> for Exchange<D, F> type Pusher = Box<Push<(T, Content<D>)>>; type Puller = Puller<T, D, Box<Pull<Message<T, D>>>>;
impl<T: Eq + Data + Abomonation, D: Data + Abomonation, F: Fn(&T, &D) -> u64 + 'static> ParallelizationContract<T, D> for TimeExchange<D, T, F> type Pusher = ExchangePusher<T, D, Pusher<T, D, Box<Push<Message<T, D>>>>, F>; type Puller = Puller<T, D, Box<Pull<Message<T, D>>>>;