pub struct FutureReclaim;Expand description
Yield future’s output and the future itself.
Enables Task implementation on any type that implements Future.
The future will be polled until it resolves.
After that, the Selector will
yield the output and the future itself.
let mut selector = (0..4)
.map(futures::future::ready)
.collect::<Selector<_, FutureReclaim>>();
for i in 0..4 {
let item: (Removed<Ready<i32>>, i32) = selector.next().await.unwrap();
assert!(item.0.is_terminated());
assert_eq!(item.1, i);
}
assert!(selector.is_empty());Trait Implementations§
Source§impl Clone for FutureReclaim
impl Clone for FutureReclaim
Source§fn clone(&self) -> FutureReclaim
fn clone(&self) -> FutureReclaim
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for FutureReclaim
Source§impl Debug for FutureReclaim
impl Debug for FutureReclaim
Source§impl Default for FutureReclaim
impl Default for FutureReclaim
Source§fn default() -> FutureReclaim
fn default() -> FutureReclaim
Returns the “default value” for a type. Read more
Source§impl<F: Future> Task<FutureReclaim> for F
impl<F: Future> Task<FutureReclaim> for F
Source§type Cont = Infallible
type Cont = Infallible
Type returned from
Self::poll_progress
when the task produces some value, but has not finished yet.Source§type Break = <F as Future>::Output
type Break = <F as Future>::Output
Type returned from
Self::poll_progress
when the task produces its last value.Source§type Output = (Removed<F>, <F as Future>::Output)
type Output = (Removed<F>, <F as Future>::Output)
Final value type, produced from
Self::Cont/Self::Break
in Self::transform_cont/Self::transform_break.Source§fn poll_progress(
self: Pin<&mut Self>,
_: &mut FutureReclaim,
cx: &mut Context<'_>,
) -> Poll<ControlFlow<Self::Break, Self::Cont>>
fn poll_progress( self: Pin<&mut Self>, _: &mut FutureReclaim, cx: &mut Context<'_>, ) -> Poll<ControlFlow<Self::Break, Self::Cont>>
Polls progress on this task using the given strategy. Read more
Source§fn transform_cont(
_: BorrowedMut<'_, F>,
_: &mut FutureReclaim,
_: Self::Cont,
) -> Option<Self::Output>
fn transform_cont( _: BorrowedMut<'_, F>, _: &mut FutureReclaim, _: Self::Cont, ) -> Option<Self::Output>
Transforms
Self::Cont value obtained from Self::poll_progress
into the final value type Self::Output. Read moreSource§fn transform_break(
task: Removed<F>,
_: &mut FutureReclaim,
value: Self::Break,
) -> Option<Self::Output>
fn transform_break( task: Removed<F>, _: &mut FutureReclaim, value: Self::Break, ) -> Option<Self::Output>
Transforms
Self::Break value obtained from Self::poll_progress
into the final value type Self::Output. Read moreAuto Trait Implementations§
impl Freeze for FutureReclaim
impl RefUnwindSafe for FutureReclaim
impl Send for FutureReclaim
impl Sync for FutureReclaim
impl Unpin for FutureReclaim
impl UnsafeUnpin for FutureReclaim
impl UnwindSafe for FutureReclaim
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<S, T> Task<&mut S> for T
impl<S, T> Task<&mut S> for T
Source§type Cont = <T as Task<S>>::Cont
type Cont = <T as Task<S>>::Cont
Type returned from
Self::poll_progress
when the task produces some value, but has not finished yet.Source§type Break = <T as Task<S>>::Break
type Break = <T as Task<S>>::Break
Type returned from
Self::poll_progress
when the task produces its last value.Source§type Output = <T as Task<S>>::Output
type Output = <T as Task<S>>::Output
Final value type, produced from
Self::Cont/Self::Break
in Self::transform_cont/Self::transform_break.Source§fn poll_progress(
self: Pin<&mut T>,
strategy: &mut &mut S,
cx: &mut Context<'_>,
) -> Poll<ControlFlow<<T as Task<&mut S>>::Break, <T as Task<&mut S>>::Cont>>
fn poll_progress( self: Pin<&mut T>, strategy: &mut &mut S, cx: &mut Context<'_>, ) -> Poll<ControlFlow<<T as Task<&mut S>>::Break, <T as Task<&mut S>>::Cont>>
Polls progress on this task using the given strategy. Read more
Source§fn transform_cont(
task: BorrowedMut<'_, T>,
strategy: &mut &mut S,
value: <T as Task<&mut S>>::Cont,
) -> Option<<T as Task<&mut S>>::Output>
fn transform_cont( task: BorrowedMut<'_, T>, strategy: &mut &mut S, value: <T as Task<&mut S>>::Cont, ) -> Option<<T as Task<&mut S>>::Output>
Transforms
Self::Cont value obtained from Self::poll_progress
into the final value type Self::Output. Read moreSource§fn transform_break(
task: Removed<T>,
strategy: &mut &mut S,
value: <T as Task<&mut S>>::Break,
) -> Option<<T as Task<&mut S>>::Output>
fn transform_break( task: Removed<T>, strategy: &mut &mut S, value: <T as Task<&mut S>>::Break, ) -> Option<<T as Task<&mut S>>::Output>
Transforms
Self::Break value obtained from Self::poll_progress
into the final value type Self::Output. Read moreSource§impl<S, T> Task<Box<S>> for T
impl<S, T> Task<Box<S>> for T
Source§type Cont = <T as Task<S>>::Cont
type Cont = <T as Task<S>>::Cont
Type returned from
Self::poll_progress
when the task produces some value, but has not finished yet.Source§type Break = <T as Task<S>>::Break
type Break = <T as Task<S>>::Break
Type returned from
Self::poll_progress
when the task produces its last value.Source§type Output = <T as Task<S>>::Output
type Output = <T as Task<S>>::Output
Final value type, produced from
Self::Cont/Self::Break
in Self::transform_cont/Self::transform_break.Source§fn poll_progress(
self: Pin<&mut T>,
strategy: &mut Box<S>,
cx: &mut Context<'_>,
) -> Poll<ControlFlow<<T as Task<Box<S>>>::Break, <T as Task<Box<S>>>::Cont>>
fn poll_progress( self: Pin<&mut T>, strategy: &mut Box<S>, cx: &mut Context<'_>, ) -> Poll<ControlFlow<<T as Task<Box<S>>>::Break, <T as Task<Box<S>>>::Cont>>
Polls progress on this task using the given strategy. Read more
Source§fn transform_cont(
task: BorrowedMut<'_, T>,
strategy: &mut Box<S>,
value: <T as Task<Box<S>>>::Cont,
) -> Option<<T as Task<Box<S>>>::Output>
fn transform_cont( task: BorrowedMut<'_, T>, strategy: &mut Box<S>, value: <T as Task<Box<S>>>::Cont, ) -> Option<<T as Task<Box<S>>>::Output>
Transforms
Self::Cont value obtained from Self::poll_progress
into the final value type Self::Output. Read moreSource§fn transform_break(
task: Removed<T>,
strategy: &mut Box<S>,
value: <T as Task<Box<S>>>::Break,
) -> Option<<T as Task<Box<S>>>::Output>
fn transform_break( task: Removed<T>, strategy: &mut Box<S>, value: <T as Task<Box<S>>>::Break, ) -> Option<<T as Task<Box<S>>>::Output>
Transforms
Self::Break value obtained from Self::poll_progress
into the final value type Self::Output. Read more