Skip to main content

RuntimePeerInteractionHandle

Struct RuntimePeerInteractionHandle 

Source
pub struct RuntimePeerInteractionHandle { /* private fields */ }
Expand description

Runtime-backed PeerInteractionHandle 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 PeerInteractionCleanup and dispatched to the installed PeerInteractionCleanupObserver (if any) — closing the “terminal transition → effect → shell projection cleanup” loop.

The cleanup observer is held as a Weak reference. In production the observer is the session’s CommsRuntime, which in turn holds a strong Arc<dyn PeerInteractionHandle> to this struct; storing the observer strongly would create a cycle that prevents CommsRuntime::drop from firing on session teardown (dropped listeners, leaked session-identity claims, zombie InprocRegistry entries). Weak breaks the cycle — once the runtime drops, upgrade() returns None and subsequent effect dispatches become no-ops, which is the desired semantics post-teardown.

Implementations§

Source§

impl RuntimePeerInteractionHandle

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 (tests / legacy recovery paths).

Trait Implementations§

Source§

impl Debug for RuntimePeerInteractionHandle

Source§

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

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

impl PeerInteractionHandle for RuntimePeerInteractionHandle

Source§

fn request_sent( &self, corr_id: PeerCorrelationId, to: String, ) -> Result<(), DslTransitionError>

Fire PeerRequestSent { corr_id, to }. Read more
Source§

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

Fire PeerResponseProgressArrived { corr_id }. Read more
Source§

fn response_terminal( &self, corr_id: PeerCorrelationId, disposition: CorePeerDisposition, ) -> Result<(), DslTransitionError>

Fire PeerResponseTerminalArrived { corr_id, disposition }. Read more
Source§

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

Fire PeerRequestTimedOut { corr_id }. Read more
Source§

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

Fire PeerRequestReceived { corr_id } (inbound). Read more
Source§

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

Fire PeerResponseReplied { corr_id } (inbound reply sent). Read more
Source§

fn outbound_state( &self, corr_id: PeerCorrelationId, ) -> Option<CoreOutboundState>

Observe the DSL-owned state of an outbound peer request. Read more
Source§

fn inbound_state(&self, corr_id: PeerCorrelationId) -> Option<CoreInboundState>

Observe the DSL-owned state of an inbound peer request.
Source§

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

Install a projection-cleanup observer for the peer-interaction lifecycle. The runtime handle invokes the observer whenever a DSL transition emits PeerInteractionCleanup, closing the loop “terminal transition → effect → shell projection cleanup”. 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> 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,