Skip to main content

RuntimeInteractionStreamHandle

Struct RuntimeInteractionStreamHandle 

Source
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§

Source§

impl RuntimeInteractionStreamHandle

Source

pub fn new(dsl: Arc<HandleDslAuthority>) -> Self

Construct a handle backed by the session’s shared DSL authority.

Source

pub fn ephemeral() -> Self

Construct a handle backed by an ephemeral DSL authority for tests and minimal hosts that explicitly opt into machine-owned semantics.

Trait Implementations§

Source§

impl Debug for RuntimeInteractionStreamHandle

Source§

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

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

impl InteractionStreamHandle for RuntimeInteractionStreamHandle

Source§

fn reserved(&self, corr_id: PeerCorrelationId) -> Result<(), DslTransitionError>

Fire InteractionStreamReserved { corr_id }. Read more
Source§

fn attached(&self, corr_id: PeerCorrelationId) -> Result<(), DslTransitionError>

Fire InteractionStreamAttached { corr_id }. Read more
Source§

fn completed( &self, corr_id: PeerCorrelationId, ) -> Result<(), DslTransitionError>

Fire InteractionStreamCompleted { corr_id }. Read more
Source§

fn expired(&self, corr_id: PeerCorrelationId) -> Result<(), DslTransitionError>

Fire InteractionStreamExpired { corr_id }. Read more
Source§

fn closed_early( &self, corr_id: PeerCorrelationId, ) -> Result<(), DslTransitionError>

Fire InteractionStreamClosedEarly { corr_id }. Read more
Source§

fn state( &self, corr_id: PeerCorrelationId, ) -> Option<CoreInteractionStreamState>

Read the DSL-owned state for a given correlation id, if any. Read more
Source§

fn install_cleanup_observer( &self, observer: Arc<dyn InteractionStreamCleanupObserver>, )

Install a projection-cleanup observer for the interaction stream lifecycle. The runtime handle invokes the observer whenever a DSL transition emits InteractionStreamCleanup, closing the loop “terminal transition → effect → shell projection cleanup”.

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

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,