pub(super) struct WakerRef<'a, S: 'static> {
waker: ManuallyDrop<Waker>,
_p: PhantomData<(&'a Header, S)>,
}
Fields§
§waker: ManuallyDrop<Waker>
§_p: PhantomData<(&'a Header, S)>
Methods from Deref<Target = Waker>§
1.36.0 · sourcepub fn wake_by_ref(&self)
pub fn wake_by_ref(&self)
Wakes 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()
.
1.36.0 · sourcepub fn will_wake(&self, other: &Waker) -> bool
pub fn will_wake(&self, other: &Waker) -> bool
Returns true
if this Waker
and another Waker
would awake the same task.
This function works on a best-effort basis, and may return false even
when the Waker
s would awaken the same task. However, if this function
returns true
, it is guaranteed that the Waker
s will awaken the same task.
This function is primarily used for optimization purposes — for example,
this type’s clone_from
implementation uses it to
avoid cloning the waker when they would wake the same task anyway.
Trait Implementations§
Auto Trait Implementations§
impl<'a, S> Freeze for WakerRef<'a, S>
impl<'a, S> !RefUnwindSafe for WakerRef<'a, S>
impl<'a, S> Send for WakerRef<'a, S>where
S: Send,
impl<'a, S> Sync for WakerRef<'a, S>where
S: Sync,
impl<'a, S> Unpin for WakerRef<'a, S>where
S: Unpin,
impl<'a, S> !UnwindSafe for WakerRef<'a, S>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more