Skip to main content

EnumerationHandle

Struct EnumerationHandle 

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

A live enumeration’s affine handle.

Holding one is what keeps an enumeration running: dropping it asks the session to stop that enumeration. The handle is not clonable and not copyable, so exactly one owner decides when the enumeration ends.

Cancellation is asynchronous. It enters the submission ring like every other control operation and takes effect when the servicer reaches it, so entries already queued still arrive and exactly one terminal outcome still follows them.

Implementations§

Source§

impl EnumerationHandle

Source

pub fn id(&self) -> EnumerationId

Which enumeration this handle controls.

Completion records carry the same identifier, which is how a caller attributes them when several enumerations share one session.

Source

pub fn cancel(self)

Ask the session to stop this enumeration.

Returns immediately. Cancellation cannot preempt a directory query that is already executing, so entries produced before it is observed are still delivered, followed by one Cancelled terminal.

Source

pub fn detach(self)

Give up control of this enumeration and let it run to completion.

The cancellation reservation returns to the submission ring, so a detached enumeration costs the session nothing beyond its terminal slot. It still reports its outcome; a caller simply loses the ability to stop it early.

Trait Implementations§

Source§

impl Debug for EnumerationHandle

Source§

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

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

impl Drop for EnumerationHandle

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. 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, 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 = !

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.