Struct tokio::util::idle_notified_set::EntryInOneOfTheLists

source ·
pub(crate) struct EntryInOneOfTheLists<'a, T> {
    entry: Arc<ListEntry<T>>,
    set: &'a mut IdleNotifiedSet<T>,
}
Expand description

A handle to an entry that is guaranteed to be stored in the idle or notified list of its IdleNotifiedSet. This value borrows the IdleNotifiedSet mutably to prevent the entry from being moved to the Neither list, which only the IdleNotifiedSet may do.

The main consequence of being stored in one of the lists is that the value field has not yet been consumed.

Note: This entry can be moved from the idle to the notified list while this object exists by waking its waker.

Fields§

§entry: Arc<ListEntry<T>>§set: &'a mut IdleNotifiedSet<T>

Implementations§

source§

impl<'a, T> EntryInOneOfTheLists<'a, T>

source

pub(crate) fn remove(self) -> T

Remove this entry from the list it is in, returning the value associated with the entry.

This consumes the value, since it is no longer guaranteed to be in a list.

source

pub(crate) fn with_value_and_context<F, U>(&mut self, func: F) -> U
where F: FnOnce(&mut T, &mut Context<'_>) -> U, T: 'static,

Access the value in this entry together with a context for its waker.

Auto Trait Implementations§

§

impl<'a, T> Freeze for EntryInOneOfTheLists<'a, T>

§

impl<'a, T> !RefUnwindSafe for EntryInOneOfTheLists<'a, T>

§

impl<'a, T> Send for EntryInOneOfTheLists<'a, T>
where T: Send,

§

impl<'a, T> Sync for EntryInOneOfTheLists<'a, T>
where T: Sync,

§

impl<'a, T> Unpin for EntryInOneOfTheLists<'a, T>

§

impl<'a, T> !UnwindSafe for EntryInOneOfTheLists<'a, T>

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

§

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

§

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.