pub trait ParallelizationContractCore<T, D> {
    type Pusher: Push<BundleCore<T, D>> + 'static;
    type Puller: Pull<BundleCore<T, D>> + 'static;

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

A ParallelizationContractCore allocates paired Push and Pull implementors.

Required Associated Types§

source

type Pusher: Push<BundleCore<T, D>> + 'static

Type implementing Push produced by this pact.

source

type Puller: Pull<BundleCore<T, D>> + 'static

Type implementing Pull produced by this pact.

Required Methods§

source

fn connect<A: AsWorker>( self, allocator: &mut A, identifier: usize, address: &[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, D: Container> ParallelizationContractCore<T, D> for Pipeline

§

type Pusher = LogPusher<T, D, Pusher<Message<Message<T, D>>, Pusher<Message<Message<T, D>>>>>

§

type Puller = LogPuller<T, D, Puller<Message<Message<T, D>>, Puller<Message<Message<T, D>>>>>

source§

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

§

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

§

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