pub struct DistributorPact<B>(pub B);Expand description
Intended to wrap a function from a usize to an impl Distributor.
For a D: Distributor<C> and an appropriate builder D::new(peers: usize),
a DistributorPact(|peers| D::new(peers)) acts as a pact that will use D
and distribute containers of type C.
Tuple Fields§
§0: BImplementations§
Source§impl<CB, F> DistributorPact<Box<dyn FnOnce(usize) -> DrainContainerDistributor<CB, F>>>where
CB: LengthPreservingContainerBuilder,
CB::Container: DrainContainer,
for<'a> F: FnMut(&<CB::Container as DrainContainer>::Item<'a>) -> u64 + 'static,
impl<CB, F> DistributorPact<Box<dyn FnOnce(usize) -> DrainContainerDistributor<CB, F>>>where
CB: LengthPreservingContainerBuilder,
CB::Container: DrainContainer,
for<'a> F: FnMut(&<CB::Container as DrainContainer>::Item<'a>) -> u64 + 'static,
Sourcepub fn new_core(func: F) -> ExchangeCore<CB, F>
pub fn new_core(func: F) -> ExchangeCore<CB, F>
Allocates a new Exchange pact from a distribution function.
Source§impl<C, F> DistributorPact<Box<dyn FnOnce(usize) -> DrainContainerDistributor<CapacityContainerBuilder<C>, F>>>where
C: Container + SizableContainer + DrainContainer,
for<'a> F: FnMut(&C::Item<'a>) -> u64 + 'static,
impl<C, F> DistributorPact<Box<dyn FnOnce(usize) -> DrainContainerDistributor<CapacityContainerBuilder<C>, F>>>where
C: Container + SizableContainer + DrainContainer,
for<'a> F: FnMut(&C::Item<'a>) -> u64 + 'static,
Sourcepub fn new(func: F) -> ExchangeCore<CapacityContainerBuilder<C>, F>
pub fn new(func: F) -> ExchangeCore<CapacityContainerBuilder<C>, F>
Allocates a new Exchange pact from a distribution function.
Trait Implementations§
Source§impl<T, B, C, D> ParallelizationContract<T, C> for DistributorPact<B>where
T: Timestamp,
B: FnOnce(usize) -> D,
C: Accountable + ContainerBytes + Send + 'static,
D: Distributor<C> + 'static,
impl<T, B, C, D> ParallelizationContract<T, C> for DistributorPact<B>where
T: Timestamp,
B: FnOnce(usize) -> D,
C: Accountable + ContainerBytes + Send + 'static,
D: Distributor<C> + 'static,
Auto Trait Implementations§
impl<B> Freeze for DistributorPact<B>where
B: Freeze,
impl<B> RefUnwindSafe for DistributorPact<B>where
B: RefUnwindSafe,
impl<B> Send for DistributorPact<B>where
B: Send,
impl<B> Sync for DistributorPact<B>where
B: Sync,
impl<B> Unpin for DistributorPact<B>where
B: Unpin,
impl<B> UnwindSafe for DistributorPact<B>where
B: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more