Skip to main content

FusedFuture

Trait FusedFuture 

pub trait FusedFuture: Future {
    // Required method
    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§

fn is_terminated(&self) -> bool

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

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

§

impl<'a, T> FusedFuture for RecvFut<'a, T>

§

fn is_terminated(&self) -> bool

§

impl<'a, T> FusedFuture for SendFut<'a, T>

§

fn is_terminated(&self) -> bool

§

impl<F> FusedFuture for &mut F
where F: FusedFuture + Unpin + ?Sized,

§

fn is_terminated(&self) -> bool

§

impl<F> FusedFuture for AssertUnwindSafe<F>
where F: FusedFuture,

Available on crate feature std only.
§

fn is_terminated(&self) -> bool

§

impl<P> FusedFuture for Pin<P>
where P: DerefMut + Unpin, <P as Deref>::Target: FusedFuture,

§

fn is_terminated(&self) -> bool

Implementors§

§

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

§

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

§

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

§

impl<F> FusedFuture for Box<F>
where F: FusedFuture + Unpin + ?Sized,

§

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

§

impl<F> FusedFuture for OptionFuture<F>
where F: 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<Fut1, Fut2, F> FusedFuture for Then<Fut1, Fut2, F>
where Flatten<Map<Fut1, F>, Fut2>: FusedFuture,

§

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

§

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

§

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

§

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

§

impl<Fut1, Fut2> FusedFuture for TryFlatten<Fut1, Fut2>
where TryFlatten<Fut1, 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, G> FusedFuture for MapOkOrElse<Fut, F, G>
where Map<IntoFuture<Fut>, ChainFn<MapOkFn<F>, ChainFn<MapErrFn<G>, MergeResultFn>>>: FusedFuture,

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<Fut> FusedFuture for IntoFuture<Fut>
where Fut: TryFuture + FusedFuture,

§

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

§

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

§

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

§

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

§

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

§

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, C> FusedFuture for Collect<St, C>
where St: FusedStream, C: Default + Extend<<St as Stream>::Item>,

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<St, Fut, F> FusedFuture for TryAll<St, Fut, F>
where St: TryStream, F: FnMut(<St as TryStream>::Ok) -> Fut, Fut: Future<Output = bool>,

§

impl<St, Fut, F> FusedFuture for TryAny<St, Fut, F>
where St: TryStream, F: FnMut(<St as TryStream>::Ok) -> Fut, Fut: Future<Output = bool>,

§

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

§

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

§

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

§

impl<St, Si> FusedFuture for Forward<St, Si>
where Forward<St, Si, <St as TryStream>::Ok>: FusedFuture, St: TryStream,

§

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

§

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

§

impl<St> FusedFuture for Count<St>
where St: FusedStream,

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<T, F> FusedFuture for AlwaysReady<T, F>
where F: Fn() -> T,

§

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

§

impl<T> FusedFuture for OwnedMutexLockFuture<T>
where T: ?Sized,

§

impl<T> FusedFuture for Pending<T>

§

impl<T> FusedFuture for PollImmediate<T>
where T: Future,

§

impl<T> FusedFuture for Ready<T>

§

impl<T> FusedFuture for Receiver<T>