Skip to main content

NamedGenServerHandle

Struct NamedGenServerHandle 

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

Handle to a running named GenServer.

Wraps a GenServerHandle together with a [NameLease] from the registry. The lease is an obligation (drop bomb): callers must resolve it by calling release_name or abort_lease before dropping.

All call, cast, info methods delegate to the inner handle.

Implementations§

Source§

impl<S: GenServer> NamedGenServerHandle<S>

Source

pub fn name(&self) -> &str

The registered name of this server.

Source

pub fn task_id(&self) -> TaskId

The underlying task ID.

Source

pub fn actor_id(&self) -> ActorId

The actor ID of this server.

Source

pub fn is_finished(&self) -> bool

Whether the server has finished execution.

Source

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

Create a lightweight server reference for sending messages.

Source

pub fn inner(&self) -> &GenServerHandle<S>

Access the inner (unnamed) handle.

Source

pub fn stop(&self)

Signal the server to stop gracefully.

Source

pub fn release_name( &mut self, registry: &mut NameRegistry, now: Time, ) -> Result<(), ReleaseNameError>

Release the name lease (commit) after the server has already stopped.

Callers should first request graceful shutdown via stop and then drive or join the server to completion. This method only removes the registry entry and resolves the lease once the underlying server task is no longer live, preserving the invariant that a running server keeps its name.

§Errors

Returns ReleaseNameError::StillRunning if the underlying server task has not finished yet. Returns ReleaseNameError::Lease if the lease was already resolved or moved out via take_lease, or if lease resolution fails.

Source

pub fn abort_lease( &mut self, registry: &mut NameRegistry, now: Time, ) -> Result<(), NameLeaseError>

Abort the name lease without stopping the server.

Use this for cancellation / error paths where the name registration itself should be rolled back.

§Errors

Returns crate::cx::NameLeaseError::AlreadyResolved if the lease was already resolved or moved out via take_lease.

Source

pub fn take_lease(&mut self) -> Option<NameLease>

Take ownership of the lease (for manual lifecycle management).

After this call, the handle no longer owns the lease; the caller is responsible for removing the matching registry entry (for example via crate::cx::NameRegistry::unregister_owned_and_grant) and then resolving the lease obligation.

Trait Implementations§

Source§

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

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