# [−][src]Macro std::task::ready

    macro_rules! ready {
        ($e:expr) => { ... };
    }

🔬 This is a nightly-only experimental API. (`ready_macro` #70922)

Extracts the successful type of a `Poll<T>`.

This macro bakes in propagation of `Pending` signals by returning early.

# Examples

    #![feature(future_readiness_fns)]
    #![feature(ready_macro)]

    use core::task::{ready, Context, Poll};
    use core::future::{self, Future};
    use core::pin::Pin;

    pub fn do_poll(cx: &mut Context<'_>) -> Poll<()> {
        let mut fut = future::ready(42);
        let fut = Pin::new(&mut fut);

        let num = ready!(fut.poll(cx));
        // ... use num

        Poll::Ready(())
    }

Run

The `ready!` call expands to:

    let num = match fut.poll(cx) {
        Poll::Ready(t) => t,
        Poll::Pending => return Poll::Pending,
    };

Run