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

source ·
pub trait ParallelizationContract<T, C> {
    type Pusher: Push<Message<T, C>> + 'static;
    type Puller: Pull<Message<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<Message<T, C>> + 'static

Type implementing Push produced by this pact.

source

type Puller: Pull<Message<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 + 'static> ParallelizationContract<T, C> for Pipeline

§

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

§

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

source§

impl<T: Timestamp, CB, H> ParallelizationContract<T, <CB as ContainerBuilder>::Container> for ExchangeCore<CB, H>
where CB: ContainerBuilder + for<'a> PushInto<<CB::Container as Container>::Item<'a>>, CB::Container: Data + Send + SizableContainer + ContainerBytes, for<'a> H: FnMut(&<CB::Container as Container>::Item<'a>) -> u64 + 'static,