Struct futures::task::Waker1.36.0[][src]

#[repr(transparent)]
pub struct Waker { /* fields omitted */ }
Expand description

A Waker is a handle for waking up a task by notifying its executor that it is ready to be run.

This handle encapsulates a RawWaker instance, which defines the executor-specific wakeup behavior.

Implements Clone, Send, and Sync.

Implementations

impl Waker[src]

pub fn wake(self)[src]

Wake up the task associated with this Waker.

pub fn wake_by_ref(&self)[src]

Wake up the task associated with this Waker without consuming the Waker.

This is similar to wake, but may be slightly less efficient in the case where an owned Waker is available. This method should be preferred to calling waker.clone().wake().

pub fn will_wake(&self, other: &Waker) -> bool[src]

Returns true if this Waker and another Waker have awoken the same task.

This function works on a best-effort basis, and may return false even when the Wakers would awaken the same task. However, if this function returns true, it is guaranteed that the Wakers will awaken the same task.

This function is primarily used for optimization purposes.

pub unsafe fn from_raw(waker: RawWaker) -> Waker[src]

Creates a new Waker from RawWaker.

The behavior of the returned Waker is undefined if the contract defined in RawWaker’s and RawWakerVTable’s documentation is not upheld. Therefore this method is unsafe.

Trait Implementations

impl Clone for Waker[src]

pub fn clone(&self) -> Waker[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for Waker[src]

pub fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>[src]

Formats the value using the given formatter. Read more

impl Drop for Waker[src]

pub fn drop(&mut self)[src]

Executes the destructor for this type. Read more

impl<W> From<Arc<W>> for Waker where
    W: 'static + Wake + Send + Sync
1.51.0[src]

pub fn from(waker: Arc<W>) -> Waker[src]

Use a Wake-able type as a Waker.

No heap allocations or atomic operations are used for this conversion.

impl Send for Waker[src]

impl Sync for Waker[src]

impl Unpin for Waker[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.