pub struct RuntimeInteractionStreamHandle { /* private fields */ }Expand description
Runtime-backed InteractionStreamHandle impl.
Every trait method routes to the corresponding DSL input on the session’s
shared MeerkatMachine authority. After the transition lands, emitted
effects are scanned for InteractionStreamCleanup and dispatched to the
installed InteractionStreamCleanupObserver (if any), closing the
“terminal transition → effect → shell projection cleanup” loop.
The observer is held as a Weak reference because the canonical owner is
the session’s CommsRuntime, which in turn holds a strong handle pointer;
storing the observer strongly would create a cycle preventing
CommsRuntime::drop from firing on session teardown. Weak::upgrade
returning None after teardown makes cleanup dispatch a no-op, which is
the desired post-shutdown semantics.
Implementations§
Trait Implementations§
Source§impl InteractionStreamHandle for RuntimeInteractionStreamHandle
impl InteractionStreamHandle for RuntimeInteractionStreamHandle
Source§fn reserved(&self, corr_id: PeerCorrelationId) -> Result<(), DslTransitionError>
fn reserved(&self, corr_id: PeerCorrelationId) -> Result<(), DslTransitionError>
InteractionStreamReserved { corr_id }. Read moreSource§fn attached(&self, corr_id: PeerCorrelationId) -> Result<(), DslTransitionError>
fn attached(&self, corr_id: PeerCorrelationId) -> Result<(), DslTransitionError>
InteractionStreamAttached { corr_id }. Read moreSource§fn completed(
&self,
corr_id: PeerCorrelationId,
) -> Result<(), DslTransitionError>
fn completed( &self, corr_id: PeerCorrelationId, ) -> Result<(), DslTransitionError>
InteractionStreamCompleted { corr_id }. Read moreSource§fn expired(&self, corr_id: PeerCorrelationId) -> Result<(), DslTransitionError>
fn expired(&self, corr_id: PeerCorrelationId) -> Result<(), DslTransitionError>
InteractionStreamExpired { corr_id }. Read moreSource§fn closed_early(
&self,
corr_id: PeerCorrelationId,
) -> Result<(), DslTransitionError>
fn closed_early( &self, corr_id: PeerCorrelationId, ) -> Result<(), DslTransitionError>
InteractionStreamClosedEarly { corr_id }. Read moreSource§fn state(
&self,
corr_id: PeerCorrelationId,
) -> Option<CoreInteractionStreamState>
fn state( &self, corr_id: PeerCorrelationId, ) -> Option<CoreInteractionStreamState>
Source§fn install_cleanup_observer(
&self,
observer: Arc<dyn InteractionStreamCleanupObserver>,
)
fn install_cleanup_observer( &self, observer: Arc<dyn InteractionStreamCleanupObserver>, )
InteractionStreamCleanup, closing the loop
“terminal transition → effect → shell projection cleanup”.