Struct embedded_runtime::context::SleepFuture

source ·
pub struct SleepFuture { /* private fields */ }
Expand description

A passive future that can be polled once before it becomes ready; useful to suspend the current context and up a timeslice to the runtime/other pending futures

§Behaviour

Polling this future yields immediately WITHOUT WAKING THE WAKER AGAIN, making room for other futures to execute. This is useful to e.g. suspend the execution of the current routine if it cannot make any progress and has no associated event sources.

§Important

Unlike SpinFuture, this future DOES NOT wake the waker again. If the runtime enters deep-sleep, you MUST ensure there are other pending futures or event sources to wake it up again.

Implementations§

source§

impl SleepFuture

source

pub const fn new() -> Self

Creates a new spin future

§Note

This future should usually not be constructed directly, use sleep_once instead.

Trait Implementations§

source§

impl Debug for SleepFuture

source§

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

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

impl Default for SleepFuture

source§

fn default() -> SleepFuture

Returns the “default value” for a type. Read more
source§

impl Future for SleepFuture

§

type Output = ()

The type of value produced on completion.
source§

fn poll(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll<Self::Output>

Attempt to resolve the future to a final value, registering the current task for wakeup if the value is not yet available. 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<F> IntoFuture for F
where F: Future,

§

type Output = <F as Future>::Output

The output that the future will produce on completion.
§

type IntoFuture = F

Which kind of future are we turning this into?
source§

fn into_future(self) -> <F as IntoFuture>::IntoFuture

Creates a future from a value. Read more
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.