Skip to main content

MailboxOwner

Struct MailboxOwner 

Source
pub struct MailboxOwner<U> { /* private fields */ }
Expand description

Affine authority over user-message admission for an actor mailbox.

Unlike UserSender, this capability is deliberately not cloneable and does not expose a counting sender. Cloneable addresses are obtained as MailboxRefs instead. Consuming this owner with MailboxOwner::close_admission prevents every stale reference from acquiring a new delivery permit while allowing permits acquired before the close to finish. The consumer can then receive every accepted message followed by Received::UserLaneClosed.

Dropping the owner has the same admission-closing effect. The explicit method is preferred at graceful-retirement sites because it documents the lifecycle transition.

Implementations§

Source§

impl<U> MailboxOwner<U>

Source

pub fn actor_ref(&self) -> MailboxRef<U>

Create another non-owning, cloneable address for this mailbox.

Source

pub fn close_admission(self)

Atomically close admission with respect to deliveries through every MailboxRef, including stale clones.

A racing delivery has exactly one of two outcomes: it acquired a temporary sender before this close and must be received before the terminal marker, or it receives its original payload back as closed. This operation does not destroy the consumer or discard queued work.

Trait Implementations§

Source§

impl<U> Drop for MailboxOwner<U>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<U> Freeze for MailboxOwner<U>

§

impl<U> RefUnwindSafe for MailboxOwner<U>

§

impl<U> Send for MailboxOwner<U>
where U: Send,

§

impl<U> Sync for MailboxOwner<U>
where U: Send,

§

impl<U> Unpin for MailboxOwner<U>

§

impl<U> UnsafeUnpin for MailboxOwner<U>

§

impl<U> UnwindSafe for MailboxOwner<U>

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