pub struct WakerRef<'a> { /* private fields */ }
Expand description
A Waker
that is only valid for a given lifetime.
Note: this type implements Deref<Target = Waker>
,
so it can be used to get a &Waker
.
Implementations§
§impl<'a> WakerRef<'a>
impl<'a> WakerRef<'a>
pub fn new_unowned(waker: ManuallyDrop<Waker>) -> WakerRef<'a>
pub fn new_unowned(waker: ManuallyDrop<Waker>) -> WakerRef<'a>
Methods from Deref<Target = Waker>§
1.36.0 · sourcepub fn wake_by_ref(&self)
pub fn wake_by_ref(&self)
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()
.
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> RefUnwindSafe for WakerRef<'a>
impl<'a> Send for WakerRef<'a>
impl<'a> Sync for WakerRef<'a>
impl<'a> Unpin for WakerRef<'a>
impl<'a> UnwindSafe for WakerRef<'a>
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
§impl<T> CompatExt for T
impl<T> CompatExt for T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.