pub trait FusedFuture: Future {
    fn is_terminated(&self) -> bool;
}
Expand description

A future which tracks whether or not the underlying future should no longer be polled.

is_terminated will return true if a future should no longer be polled. Usually, this state occurs after poll (or try_poll) returned Poll::Ready. However, is_terminated may also return true if a future has become inactive and can no longer make progress and should be ignored or dropped rather than being polled again.

Required Methods§

Returns true if the underlying future should no longer be polled.

Implementations on Foreign Types§

Implementors§

impl<T> FusedFuture for Receiver<T>

impl<Fut: Future> FusedFuture for Fuse<Fut>

impl<F> FusedFuture for Flatten<F>where
    Flatten<F, <F as Future>::Output>: FusedFuture,
    F: Future,

impl<Fut, F> FusedFuture for Map<Fut, F>where
    Map<Fut, F>: FusedFuture,

impl<Fut, T> FusedFuture for MapInto<Fut, T>where
    Map<Fut, IntoFn<T>>: FusedFuture,

impl<Fut1, Fut2, F> FusedFuture for Then<Fut1, Fut2, F>where
    Flatten<Map<Fut1, F>, Fut2>: FusedFuture,

impl<Fut, F> FusedFuture for Inspect<Fut, F>where
    Map<Fut, InspectFn<F>>: FusedFuture,

impl<Fut> FusedFuture for NeverError<Fut>where
    Map<Fut, OkFn<Never>>: FusedFuture,

impl<Fut> FusedFuture for UnitError<Fut>where
    Map<Fut, OkFn<()>>: FusedFuture,

impl<Fut> FusedFuture for Shared<Fut>where
    Fut: Future,
    Fut::Output: Clone,

impl<Fut1, Fut2> FusedFuture for TryFlatten<Fut1, Fut2>where
    TryFlatten<Fut1, Fut2>: FusedFuture,

impl<Fut1, Fut2, F> FusedFuture for AndThen<Fut1, Fut2, F>where
    TryFlatten<MapOk<Fut1, F>, Fut2>: FusedFuture,

impl<Fut1, Fut2, F> FusedFuture for OrElse<Fut1, Fut2, F>where
    TryFlattenErr<MapErr<Fut1, F>, Fut2>: FusedFuture,

impl<Fut, E> FusedFuture for ErrInto<Fut, E>where
    MapErr<Fut, IntoFn<E>>: FusedFuture,

impl<Fut, E> FusedFuture for OkInto<Fut, E>where
    MapOk<Fut, IntoFn<E>>: FusedFuture,

impl<Fut, F> FusedFuture for InspectOk<Fut, F>where
    Inspect<IntoFuture<Fut>, InspectOkFn<F>>: FusedFuture,

impl<Fut, F> FusedFuture for InspectErr<Fut, F>where
    Inspect<IntoFuture<Fut>, InspectErrFn<F>>: FusedFuture,

impl<Fut, F> FusedFuture for MapOk<Fut, F>where
    Map<IntoFuture<Fut>, MapOkFn<F>>: FusedFuture,

impl<Fut, F> FusedFuture for MapErr<Fut, F>where
    Map<IntoFuture<Fut>, MapErrFn<F>>: FusedFuture,

impl<Fut, F, G> FusedFuture for MapOkOrElse<Fut, F, G>where
    Map<IntoFuture<Fut>, ChainFn<MapOkFn<F>, ChainFn<MapErrFn<G>, MergeResultFn>>>: FusedFuture,

impl<Fut, F> FusedFuture for UnwrapOrElse<Fut, F>where
    Map<IntoFuture<Fut>, UnwrapOrElseFn<F>>: FusedFuture,

impl<F, R> FusedFuture for Lazy<F>where
    F: FnOnce(&mut Context<'_>) -> R,

impl<T> FusedFuture for Pending<T>

impl<Fut: Future> FusedFuture for MaybeDone<Fut>

impl<Fut: TryFuture> FusedFuture for TryMaybeDone<Fut>

impl<T> FusedFuture for Ready<T>

impl<Fut1: FusedFuture, Fut2: FusedFuture> FusedFuture for Join<Fut1, Fut2>

impl<Fut1: FusedFuture, Fut2: FusedFuture, Fut3: FusedFuture> FusedFuture for Join3<Fut1, Fut2, Fut3>

impl<Fut1: FusedFuture, Fut2: FusedFuture, Fut3: FusedFuture, Fut4: FusedFuture> FusedFuture for Join4<Fut1, Fut2, Fut3, Fut4>

impl<Fut1: FusedFuture, Fut2: FusedFuture, Fut3: FusedFuture, Fut4: FusedFuture, Fut5: FusedFuture> FusedFuture for Join5<Fut1, Fut2, Fut3, Fut4, Fut5>

impl<A, B> FusedFuture for Select<A, B>where
    A: Future + Unpin,
    B: Future + Unpin,

impl<A, B> FusedFuture for Either<A, B>where
    A: FusedFuture,
    B: FusedFuture<Output = A::Output>,

impl<St, C> FusedFuture for Collect<St, C>where
    St: FusedStream,
    C: Default + Extend<St::Item>,

impl<St, A, B, FromA, FromB> FusedFuture for Unzip<St, FromA, FromB>where
    St: FusedStream<Item = (A, B)>,
    FromA: Default + Extend<A>,
    FromB: Default + Extend<B>,

impl<St> FusedFuture for Concat<St>where
    St: FusedStream,
    St::Item: Extend<<St::Item as IntoIterator>::Item> + IntoIterator + Default,

impl<St, Fut, T, F> FusedFuture for Fold<St, Fut, T, F>where
    St: Stream,
    F: FnMut(T, St::Item) -> Fut,
    Fut: Future<Output = T>,

impl<St, Fut, F> FusedFuture for ForEach<St, Fut, F>where
    St: FusedStream,
    F: FnMut(St::Item) -> Fut,
    Fut: Future<Output = ()>,

impl<St: Stream + Unpin> FusedFuture for StreamFuture<St>

impl<St: ?Sized + FusedStream + Unpin> FusedFuture for Next<'_, St>

impl<St: ?Sized + FusedStream + Unpin> FusedFuture for SelectNextSome<'_, St>

impl<St: Stream> FusedFuture for Peek<'_, St>

impl<St: Stream> FusedFuture for PeekMut<'_, St>

impl<St, F> FusedFuture for NextIf<'_, St, F>where
    St: Stream,
    F: for<'a> FnOnce1<&'a St::Item, Output = bool>,

impl<St, T> FusedFuture for NextIfEq<'_, St, T>where
    St: Stream,
    T: ?Sized,
    St::Item: PartialEq<T>,

impl<St, Fut, F> FusedFuture for ForEachConcurrent<St, Fut, F>where
    St: Stream,
    F: FnMut(St::Item) -> Fut,
    Fut: Future<Output = ()>,

impl<St: ?Sized + TryStream + Unpin + FusedStream> FusedFuture for TryNext<'_, St>

impl<St, C> FusedFuture for TryCollect<St, C>where
    St: TryStream + FusedStream,
    C: Default + Extend<St::Ok>,

impl<St, Fut, T, F> FusedFuture for TryFold<St, Fut, T, F>where
    St: TryStream,
    F: FnMut(T, St::Ok) -> Fut,
    Fut: TryFuture<Ok = T, Error = St::Error>,

impl<St, Fut, F> FusedFuture for TryForEachConcurrent<St, Fut, F>where
    St: TryStream,
    F: FnMut(St::Ok) -> Fut,
    Fut: Future<Output = Result<(), St::Error>>,

impl<T: ?Sized> FusedFuture for MutexLockFuture<'_, T>