Skip to main content

Actions

Struct Actions 

Source
pub struct Actions<A: Address, Ph, Sends, Birth: BirthMode> {
    pub sends: Sends,
    pub creates: Creations<CreateChild<A, Birth::Child>>,
    pub become_: Become<Ph>,
}
Expand description

Bombay’s typed realization of the actor transition effects: communications, fresh actor creation, and next behavior or termination.

Actions::interpret resolves every fresh creation in creates before the named sends product. A committed resolution installs and binds the child; a semantic rejection binds nothing but remains an accepted interpretation receipt. This ordering lets a same-action crate::ChildDelivery or typed creation-observation request use the authoritative result rather than Behavior’s intent. Each child-operation interpreter returns Blocked only when its exact binding prerequisite rejected, while independent later items are still attempted. Interpreter corruption retains the factual prefix and every exact remaining value. No later creation may inherit a failed binding. Creation order is vector order, and named send products declare their own stable order. Constructing a value remains pure.

Fields§

§sends: Sends§creates: Creations<CreateChild<A, Birth::Child>>§become_: Become<Ph>

Implementations§

Source§

impl<A: Address, Ph, Sends, Birth: BirthMode> Actions<A, Ph, Sends, Birth>

Source

pub fn map_sends<Mapped>( self, map: impl FnOnce(Sends) -> Mapped, ) -> Actions<A, Ph, Mapped, Birth>

Transform only the send effects, preserving creation order and the next-behavior verdict exactly.

Source

pub fn map_become<NextPh>( self, map: impl FnOnce(Become<Ph>) -> Become<NextPh>, ) -> Actions<A, NextPh, Sends, Birth>

Transform only the next-behavior verdict, preserving sends and creation order exactly.

Source

pub fn with_send<Input, Path>(self, input: Input) -> Self
where Sends: SendInput<Input, Path>,

Append one communication to its statically selected send lane.

This is a pure transformation of the send leg. It preserves creation order and the exact continue, phase-change, or termination verdict. Path is compile-time lane evidence; no runtime lookup is performed.

Source

pub async fn interpret<Interpreter, RootEvent, Path>( progress: &mut Option<InterpretationProgress<Self, <Self as ActionSettlements>::InterpretationCustody, <Self as ActionSettlements>::Settlements>>, interpreter: &mut Interpreter, )
where Ph: Send, Sends: InterpretSends<Interpreter, RootEvent, Path>, Birth: InterpretCreations<A, Interpreter, RootEvent, Path>, Self: Send, <Self as ActionSettlements>::Settlements: Send, <Self as ActionSettlements>::InterpretationCustody: Send, Interpreter: Send,

Borrow caller-owned action progress through one statically typed runtime.

Creation items are attempted in vector order before the named send product. Lawful creation rejection or blocking is retained and does not suppress sends; concrete child-operation interpreters decide whether an exact binding prerequisite was satisfied. Interpreter corruption stops traversal and retains every later creation and the complete send product as unattempted. The next-behavior verdict is never reconstructed.

Source§

impl<A: Address, Ph, Sends: SendEffects, Birth: BirthMode> Actions<A, Ph, Sends, Birth>

Source

pub const fn new( sends: Sends, creates: Creations<CreateChild<A, Birth::Child>>, become_: Become<Ph>, ) -> Self

Source

pub fn just(become_: Become<Ph>) -> Self

Source

pub fn cont() -> Self

Source

pub fn stop() -> Self

Source

pub fn goto(phase: Ph) -> Self

Source

pub fn send(sends: Sends) -> Self

Continue after emitting the complete declared send product.

Source

pub fn create(creates: Creations<CreateChild<A, Birth::Child>>) -> Self

Continue after staging the complete declared creation product.

Trait Implementations§

Source§

impl<A, Ph, Sends, Birth> ActionSettlements for Actions<A, Ph, Sends, Birth>
where A: Address, Sends: SendSettlements, Birth: CreationSettlements<A>,

Source§

impl<A, Ph, Sends, Birth, Input, Path> AppendSend<Input, Path> for Actions<A, Ph, Sends, Birth>
where A: Address, Birth: BirthMode, Sends: SendInput<Input, Path>,

Source§

fn append_send(self, input: Input) -> Self

Append input exactly once and preserve creations and the next verdict.
Source§

impl<A, Ph, Sends, Birth> Debug for Actions<A, Ph, Sends, Birth>
where A: Address + Debug, A::Nonce: Debug, Ph: Debug, Sends: Debug, Birth: BirthMode, Birth::Child: Debug,

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<A: Address, Ph, Sends, Birth: BirthMode> From<(Sends, Creations<CreateChild<A, <Birth as BirthMode>::Child>>, Step<Ph, Stopped>)> for Actions<A, Ph, Sends, Birth>

Source§

fn from( (sends, creates, become_): (Sends, Creations<CreateChild<A, Birth::Child>>, Become<Ph>), ) -> Self

Converts to this type from the input type.
Source§

impl<A, Ph, Sends, Birth> PartialEq for Actions<A, Ph, Sends, Birth>
where A: Address + PartialEq, A::Nonce: PartialEq, Ph: PartialEq, Sends: PartialEq, Birth: BirthMode, Birth::Child: PartialEq,

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<A, Ph, Sends, Birth> Eq for Actions<A, Ph, Sends, Birth>
where A: Address + Eq, A::Nonce: Eq, Ph: Eq, Sends: Eq, Birth: BirthMode, Birth::Child: Eq,

Auto Trait Implementations§

§

impl<A, Ph, Sends, Birth> Freeze for Actions<A, Ph, Sends, Birth>
where Sends: Freeze, Ph: Freeze,

§

impl<A, Ph, Sends, Birth> RefUnwindSafe for Actions<A, Ph, Sends, Birth>
where Sends: RefUnwindSafe, Ph: RefUnwindSafe, <Birth as BirthMode>::Child: RefUnwindSafe,

§

impl<A, Ph, Sends, Birth> Send for Actions<A, Ph, Sends, Birth>
where Sends: Send, Ph: Send, <Birth as BirthMode>::Child: Send,

§

impl<A, Ph, Sends, Birth> Sync for Actions<A, Ph, Sends, Birth>
where Sends: Sync, Ph: Sync, <Birth as BirthMode>::Child: Sync,

§

impl<A, Ph, Sends, Birth> Unpin for Actions<A, Ph, Sends, Birth>
where Sends: Unpin, Ph: Unpin, <Birth as BirthMode>::Child: Unpin,

§

impl<A, Ph, Sends, Birth> UnsafeUnpin for Actions<A, Ph, Sends, Birth>
where Sends: UnsafeUnpin, Ph: UnsafeUnpin,

§

impl<A, Ph, Sends, Birth> UnwindSafe for Actions<A, Ph, Sends, Birth>
where Sends: UnwindSafe, Ph: UnwindSafe, <Birth as BirthMode>::Child: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.