Skip to main content

MailboxOp

Enum MailboxOp 

Source
pub enum MailboxOp {
    Emit(NodeId, HandleId),
    Complete(NodeId),
    Error(NodeId, HandleId),
    Defer(SendDeferFn),
}
Expand description

A re-entry request posted to the CoreMailbox by an autonomous async producer (timer task → Emit) or by a producer-operator sink (D232-AMEND/A′ → Emit/Complete/Error). Applied owner-side via the sync Core::{emit,complete,error} by crate::node::Core::drain_mailbox — drained in-wave to quiescence by the BatchGuard drain loop for producer sinks (immediate, cascade-ordering-preserving), and at the embedder pump point for timer tasks (D230).

Variants§

§

Emit(NodeId, HandleId)

Core::emit(node, handle). Posted by timer tasks + producer sinks.

§

Complete(NodeId)

Core::complete(node). Posted by producer sinks.

§

Error(NodeId, HandleId)

Core::error(node, handle). Posted by producer sinks.

§

Defer(SendDeferFn)

Send owner-side closure (D233; D249/S2c). Posted by a cross-thread timer task (temporal.rs window_time/etc.) whose closure captures only Send state; applied in-wave by the drain loop (the owner holds &Core). The !Send owner-side sink defers (graph describe/observe, control/higher-order dynamic-inner) go to the separate owner-only DeferQueue instead — D248/D249.

Trait Implementations§

Source§

impl Debug for MailboxOp

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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> Same for T

Source§

type Output = T

Should always be Self
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.