pub(crate) struct Coop<F: Future> {
pub(crate) fut: F,
}
Expand description
Future wrapper to ensure cooperative scheduling.
When being polled poll_proceed
is called before the inner future is polled to check
if the inner future has exceeded its budget. If the inner future resolves, this will
automatically call RestoreOnPending::made_progress
before resolving this future with
the result of the inner one. If polling the inner future is pending, polling this future
type will also return a Poll::Pending
.
Fields§
§fut: F
Trait Implementations§
impl<'__pin, F: Future> Unpin for Coop<F>where
PinnedFieldsOf<__Origin<'__pin, F>>: Unpin,
Auto Trait Implementations§
impl<F> Freeze for Coop<F>where
F: Freeze,
impl<F> RefUnwindSafe for Coop<F>where
F: RefUnwindSafe,
impl<F> Send for Coop<F>where
F: Send,
impl<F> Sync for Coop<F>where
F: Sync,
impl<F> UnwindSafe for Coop<F>where
F: UnwindSafe,
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
Mutably borrows from an owned value. Read more
source§impl<F> IntoFuture for Fwhere
F: Future,
impl<F> IntoFuture for Fwhere
F: Future,
§type IntoFuture = F
type IntoFuture = F
Which kind of future are we turning this into?
source§fn into_future(self) -> <F as IntoFuture>::IntoFuture
fn into_future(self) -> <F as IntoFuture>::IntoFuture
Creates a future from a value. Read more