pub fn poll_fn<F, T>(f: F) -> PollFn<F>Notable traits for PollFn<F>impl<F, T> Future for PollFn<F>where
    F: FnMut(&mut Context<'_>) -> Poll<T>,
type Output = T;
where
    F: FnMut(&mut Context<'_>) -> Poll<T>,
Expand description

Creates a future driven by the provided function that receives a task context.

Examples

let res = poll_fn(|_| Poll::Ready(42)).await;
assert_eq!(res, 42);

let mut i = 5;
let res = poll_fn(|cx| {
    i -= 1;

    if i > 0 {
        cx.waker().wake_by_ref();
        Poll::Pending
    } else {
        Poll::Ready(42)
    }
})
.await;
assert_eq!(res, 42);