pub trait DispatchBirth<A: Address, Host>: ChildCreationProduct<A, ChildHead> + Sized {
// Required method
fn dispatch_birth(
self,
id: CreationId,
route: A::Nonce,
kind: CreationKind,
host: &mut Host,
) -> impl Future<Output = ItemSettlement<RoutedCreation<A, Self>, <Self as ChildCreationProduct<A, ChildHead>>::Result, CreationRejection, Never>> + Send;
}Expand description
Exhaustive static dispatch of one creation-only child sum.
This is an interpreter-facing derived construction, not another actor-model
operation. Implementations must preserve the ID, route, and creation kind and
call exactly one concrete EstablishChild implementation. ChildChoice
provides the closed recursive heterogeneous sum. Dispatch futures are
sendable; heterogeneous sums therefore require sendable alternatives,
runtime routes, and child hosts.
Required Methods§
Sourcefn dispatch_birth(
self,
id: CreationId,
route: A::Nonce,
kind: CreationKind,
host: &mut Host,
) -> impl Future<Output = ItemSettlement<RoutedCreation<A, Self>, <Self as ChildCreationProduct<A, ChildHead>>::Result, CreationRejection, Never>> + Send
fn dispatch_birth( self, id: CreationId, route: A::Nonce, kind: CreationKind, host: &mut Host, ) -> impl Future<Output = ItemSettlement<RoutedCreation<A, Self>, <Self as ChildCreationProduct<A, ChildHead>>::Result, CreationRejection, Never>> + Send
Select exactly one concrete child host while preserving creation data in every non-accepted settlement.
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.