Extracts the successful type of a Poll<T>.
This macro bakes in propagation of Pending signals by returning early.
Examples
use std::task::{ready, Context, Poll};
use std::future::{self, Future};
use std::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));
# let _ = num;
Poll::Ready(())
}
The ready! call expands to:
# use std::task::{Context, Poll};
# use std::future::{self, Future};
# use std::pin::Pin;
#
# pub fn do_poll(cx: &mut Context<'_>) -> Poll<()> {
# let mut fut = future::ready(42);
# let fut = Pin::new(&mut fut);
#
let num = match fut.poll(cx) {
Poll::Ready(t) => t,
Poll::Pending => return Poll::Pending,
};
# let _ = num; # #
# Poll::Ready(())
# }