Skip to main content

GenServerHandle

Struct GenServerHandle 

Source
pub struct GenServerHandle<S: GenServer> { /* private fields */ }
Expand description

Handle to a running GenServer.

Provides typed call() and cast() methods. The handle owns a sender to the server’s mailbox and a oneshot receiver for join.

Implementations§

Source§

impl<S: GenServer> GenServerHandle<S>

Source

pub async fn call( &self, cx: &Cx, request: S::Call, ) -> Result<S::Reply, CallError>

Send a call (request-response) to the server.

Blocks until the server replies or the server stops. The reply channel uses obligation-tracked oneshot from channel::session, ensuring that if the server drops the reply without sending, the obligation token panics rather than silently losing the reply.

Source

pub async fn cast(&self, cx: &Cx, msg: S::Cast) -> Result<(), CastError>

Send a cast (fire-and-forget) to the server.

Source

pub fn try_cast(&self, msg: S::Cast) -> Result<(), CastError>

Try to send a cast without blocking.

Applies the server’s CastOverflowPolicy when the mailbox is full:

  • Reject: returns CastError::Full
  • DropOldest: evicts the oldest message and enqueues the new one
Source

pub async fn info(&self, cx: &Cx, msg: S::Info) -> Result<(), InfoError>

Send an info message (system/out-of-band) to the server.

Source

pub fn try_info(&self, msg: S::Info) -> Result<(), InfoError>

Try to send an info message without blocking.

Source

pub fn cast_overflow_policy(&self) -> CastOverflowPolicy

Returns the server’s overflow policy for cast messages.

Source

pub const fn actor_id(&self) -> ActorId

Returns the server’s actor ID.

Source

pub fn task_id(&self) -> TaskId

Returns the server’s task ID.

Source

pub fn is_finished(&self) -> bool

Returns true if the server has finished.

Source

pub fn stop(&self)

Signals the server to stop gracefully.

Source

pub async fn join(&self, cx: &Cx) -> Result<S, JoinError>

Wait for the server to finish and return its final state.

Source§

impl<S: GenServer> GenServerHandle<S>

Source

pub fn server_ref(&self) -> GenServerRef<S>

Returns a lightweight, clonable reference for casting.

Trait Implementations§

Source§

impl<S: Debug + GenServer> Debug for GenServerHandle<S>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<S> Freeze for GenServerHandle<S>

§

impl<S> RefUnwindSafe for GenServerHandle<S>

§

impl<S> Send for GenServerHandle<S>

§

impl<S> Sync for GenServerHandle<S>

§

impl<S> Unpin for GenServerHandle<S>

§

impl<S> UnwindSafe for GenServerHandle<S>

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: NoopSpan) -> Self

Instruments this future with a span (no-op when disabled).
Source§

fn in_current_span(self) -> Self

Instruments this future with the current span (no-op when disabled).
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> 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<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