Trait timely::dataflow::channels::pact::ParallelizationContract

source ·
pub trait ParallelizationContract<T, C> {
    type Pusher: Push<Bundle<T, C>> + 'static;
    type Puller: Pull<Bundle<T, C>> + 'static;

    // Required method
    fn connect<A: AsWorker>(
        self,
        allocator: &mut A,
        identifier: usize,
        address: Rc<[usize]>,
        logging: Option<Logger>,
    ) -> (Self::Pusher, Self::Puller);
}
Expand description

A ParallelizationContract allocates paired Push and Pull implementors.

Required Associated Types§

source

type Pusher: Push<Bundle<T, C>> + 'static

Type implementing Push produced by this pact.

source

type Puller: Pull<Bundle<T, C>> + 'static

Type implementing Pull produced by this pact.

Required Methods§

source

fn connect<A: AsWorker>( self, allocator: &mut A, identifier: usize, address: Rc<[usize]>, logging: Option<Logger>, ) -> (Self::Pusher, Self::Puller)

Allocates a matched pair of push and pull endpoints implementing the pact.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<T: 'static, C: Container> ParallelizationContract<T, C> for Pipeline

§

type Pusher = LogPusher<T, C, Pusher<Bincode<Message<T, C>>, Pusher<Bincode<Message<T, C>>>>>

§

type Puller = LogPuller<T, C, Puller<Bincode<Message<T, C>>, Puller<Bincode<Message<T, C>>>>>

source§

impl<T: Timestamp, C, H> ParallelizationContract<T, C> for ExchangeCore<C, H>
where C: ExchangeData + PushPartitioned, for<'a> H: FnMut(&C::Item<'a>) -> u64 + 'static,

§

type Pusher = Exchange<T, C, LogPusher<T, C, Box<dyn Push<Bincode<Message<T, C>>>>>, H>

§

type Puller = LogPuller<T, C, Box<dyn Pull<Bincode<Message<T, C>>>>>