timely::dataflow::channels::pact

Type Alias Exchange

Source
pub type Exchange<D, F> = ExchangeCore<CapacityContainerBuilder<Vec<D>>, F>;
Expand description

ExchangeCore specialized to vector-based containers.

Aliased Type§

struct Exchange<D, F> { /* private fields */ }

Implementations

Source§

impl<CB, F> ExchangeCore<CB, F>
where CB: LengthPreservingContainerBuilder, for<'a> F: FnMut(&<CB::Container as Container>::Item<'a>) -> u64,

Source

pub fn new_core(func: F) -> ExchangeCore<CB, F>

Allocates a new Exchange pact from a distribution function.

Source§

impl<C, F> ExchangeCore<CapacityContainerBuilder<C>, F>
where C: SizableContainer, for<'a> F: FnMut(&C::Item<'a>) -> u64,

Source

pub fn new(func: F) -> ExchangeCore<CapacityContainerBuilder<C>, F>

Allocates a new Exchange pact from a distribution function.

Trait Implementations

Source§

impl<C, F> Debug for ExchangeCore<C, F>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
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 + ContainerBytes, for<'a> H: FnMut(&<CB::Container as Container>::Item<'a>) -> u64 + 'static,

Source§

type Pusher = Exchange<T, CB, LogPusher<T, <CB as ContainerBuilder>::Container, Box<dyn Push<Message<T, <CB as ContainerBuilder>::Container>>>>, H>

Type implementing Push produced by this pact.
Source§

type Puller = LogPuller<T, <CB as ContainerBuilder>::Container, Box<dyn Pull<Message<T, <CB as ContainerBuilder>::Container>>>>

Type implementing Pull produced by this pact.
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.