Skip to main content

SourceSettlementCustody

Trait SourceSettlementCustody 

Source
pub trait SourceSettlementCustody<Host, RootEvent>: Sized {
    type Custody: Send;

    // Required methods
    fn prepare_source(
        progress: &mut Option<SourceProgress<Self, Self::Custody>>,
    );
    fn offer_next_to_source(
        custody: &mut Self::Custody,
        host: &mut Host,
    ) -> impl Future<Output = ()> + Send;
    fn finish_source(progress: &mut Option<SourceProgress<Self, Self::Custody>>);
}

Required Associated Types§

Required Methods§

Source

fn prepare_source(progress: &mut Option<SourceProgress<Self, Self::Custody>>)

Source

fn offer_next_to_source( custody: &mut Self::Custody, host: &mut Host, ) -> impl Future<Output = ()> + Send

Source

fn finish_source(progress: &mut Option<SourceProgress<Self, Self::Custody>>)

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<Host, RootEvent> SourceSettlementCustody<Host, RootEvent> for Vec<Never>

Source§

type Custody = Vec<Never>

Source§

fn prepare_source(progress: &mut Option<SourceProgress<Self, Self::Custody>>)

Source§

fn offer_next_to_source( _: &mut Self::Custody, _: &mut Host, ) -> impl Future<Output = ()> + Send

Source§

fn finish_source(progress: &mut Option<SourceProgress<Self, Self::Custody>>)

Source§

impl<Host, RootEvent, Earlier, Later> SourceSettlementCustody<Host, RootEvent> for (Earlier, Later)
where Host: Send, Earlier: SourceSettlementCustody<Host, RootEvent> + Send, Later: SourceSettlementCustody<Host, RootEvent> + Send,

Source§

type Custody = (Option<SourceProgress<Earlier, <Earlier as SourceSettlementCustody<Host, RootEvent>>::Custody>>, Option<SourceProgress<Later, <Later as SourceSettlementCustody<Host, RootEvent>>::Custody>>)

Source§

fn prepare_source(progress: &mut Option<SourceProgress<Self, Self::Custody>>)

Source§

fn offer_next_to_source( custody: &mut Self::Custody, host: &mut Host, ) -> impl Future<Output = ()> + Send

Source§

fn finish_source(progress: &mut Option<SourceProgress<Self, Self::Custody>>)

Source§

impl<Host, RootEvent, Item> SourceSettlementCustody<Host, RootEvent> for Vec<ActionItemResult<Item>>
where Item: ActionItem,

Source§

type Custody = (Vec<SettledItem<Item, ItemSettlement<Item, <Item as ActionItem>::Accepted, <Item as ActionItem>::Rejection, <Item as ActionItem>::Prerequisite>>>, IntoIter<SettledItem<Item, ItemSettlement<Item, <Item as ActionItem>::Accepted, <Item as ActionItem>::Rejection, <Item as ActionItem>::Prerequisite>>>)

Source§

fn prepare_source(progress: &mut Option<SourceProgress<Self, Self::Custody>>)

Source§

fn offer_next_to_source( custody: &mut Self::Custody, _: &mut Host, ) -> impl Future<Output = ()> + Send

Source§

fn finish_source(progress: &mut Option<SourceProgress<Self, Self::Custody>>)

Implementors§

Source§

impl<A, C, Host, RootEvent> SourceSettlementCustody<Host, RootEvent> for CreationSettlement<Creations<CreateChild<A, C>>, Creations<SettledItem<RoutedCreation<A, C>, ItemSettlement<RoutedCreation<A, C>, <C as ChildCreationProduct<A, ChildHead>>::Result, CreationRejection, Never>>>>
where A: Address, A::Nonce: Send, C: ChildCreationProduct<A, ChildHead> + Send, <C as ChildCreationProduct<A, ChildHead>>::Result: Send, Host: SourceAdmission<RootEvent, Births<C>, CreationsSettled<A, C>>, RootEvent: EventIngress<Births<C>, CreationsSettled<A, C>>,

Source§

impl<A, C, Host, RootEvent> SourceSettlementCustody<Host, RootEvent> for RetirementCreationSettlement<CreationSettlement<Creations<CreateChild<A, C>>, Creations<SettledItem<RoutedCreation<A, C>, ItemSettlement<RoutedCreation<A, C>, <C as ChildCreationProduct<A, ChildHead>>::Result, CreationRejection, Never>>>>>
where A: Address, A::Nonce: Send, C: ChildCreationProduct<A, ChildHead> + Send, <C as ChildCreationProduct<A, ChildHead>>::Result: Send,

Source§

impl<Host, RootEvent> SourceSettlementCustody<Host, RootEvent> for Creations<Never>

Source§

impl<Host, RootEvent> SourceSettlementCustody<Host, RootEvent> for NoSends

Source§

impl<Host, RootEvent, Creations, Sends, Ph> SourceSettlementCustody<Host, RootEvent> for ActionSettlement<Creations, Sends, Ph>
where Host: Send, Creations: SourceSettlementCustody<Host, RootEvent> + Send, Sends: SourceSettlementCustody<Host, RootEvent> + Send, Ph: Send,

Source§

impl<Host, RootEvent, Item> SourceSettlementCustody<Host, RootEvent> for SourceSettlements<Item>
where Host: SourceAdmission<RootEvent, Item::Source, ActionItemResult<Item>>, RootEvent: EventIngress<Item::Source, ActionItemResult<Item>>, Item: SourceAction,

Source§

impl<Host, RootEvent, Owned, Inner> SourceSettlementCustody<Host, RootEvent> for SendLayer<Owned, Inner>
where Host: Send, Owned: SourceSettlementCustody<Host, RootEvent> + Send, Inner: SourceSettlementCustody<Host, RootEvent> + Send,