[][src]Enum futures_util::future::MaybeDone

pub enum MaybeDone<Fut: Future> {
    Future(Fut),
    Done(Fut::Output),
    Gone,
}

A future that may have completed.

This is created by the maybe_done() function.

Variants

Future(Fut)

A not-yet-completed future

Done(Fut::Output)

The output of the completed future

Gone

The empty variant after the result of a MaybeDone has been taken using the take_output method.

Methods

impl<Fut: Future> MaybeDone<Fut>[src]

pub fn output_mut<'a>(self: Pin<&'a mut Self>) -> Option<&'a mut Fut::Output>[src]

Returns an Option containing a mutable reference to the output of the future. The output of this method will be Some if and only if the inner future has been completed and take_output has not yet been called.

pub fn take_output(self: Pin<&mut Self>) -> Option<Fut::Output>[src]

Attempt to take the output of a MaybeDone without driving it towards completion.

Trait Implementations

impl<Fut: Future + Unpin> Unpin for MaybeDone<Fut>[src]

impl<Fut: Debug + Future> Debug for MaybeDone<Fut> where
    Fut::Output: Debug
[src]

impl<Fut: Future> Future for MaybeDone<Fut>[src]

type Output = ()

🔬 This is a nightly-only experimental API. (futures_api)

futures in libcore are unstable

The type of value produced on completion.

impl<Fut: Future> FusedFuture for MaybeDone<Fut>[src]

Auto Trait Implementations

impl<Fut> Send for MaybeDone<Fut> where
    Fut: Send,
    <Fut as Future>::Output: Send

impl<Fut> Sync for MaybeDone<Fut> where
    Fut: Sync,
    <Fut as Future>::Output: Sync

Blanket Implementations

impl<T> FutureExt for T where
    T: Future + ?Sized
[src]

fn map<U, F>(self, f: F) -> Map<Self, F> where
    F: FnOnce(Self::Output) -> U,
    Self: Sized
[src]

Map this future's output to a different type, returning a new future of the resulting type. Read more

fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F> where
    F: FnOnce(Self::Output) -> Fut,
    Fut: Future,
    Self: Sized
[src]

Chain on a computation for when a future finished, passing the result of the future to the provided closure f. Read more

fn join<Fut2>(self, other: Fut2) -> Join<Self, Fut2> where
    Fut2: Future,
    Self: Sized
[src]

Joins the result of two futures, waiting for them both to complete. Read more

fn join3<Fut2, Fut3>(
    self,
    future2: Fut2,
    future3: Fut3
) -> Join3<Self, Fut2, Fut3> where
    Fut2: Future,
    Fut3: Future,
    Self: Sized
[src]

Same as join, but with more futures. Read more

fn join4<Fut2, Fut3, Fut4>(
    self,
    future2: Fut2,
    future3: Fut3,
    future4: Fut4
) -> Join4<Self, Fut2, Fut3, Fut4> where
    Fut2: Future,
    Fut3: Future,
    Fut3: Future,
    Fut4: Future,
    Self: Sized
[src]

Same as join, but with more futures. Read more

fn join5<Fut2, Fut3, Fut4, Fut5>(
    self,
    future2: Fut2,
    future3: Fut3,
    future4: Fut4,
    future5: Fut5
) -> Join5<Self, Fut2, Fut3, Fut4, Fut5> where
    Fut2: Future,
    Fut3: Future,
    Fut3: Future,
    Fut4: Future,
    Fut5: Future,
    Self: Sized
[src]

Same as join, but with more futures. Read more

fn into_stream(self) -> IntoStream<Self> where
    Self: Sized
[src]

Convert this future into a single element stream. Read more

fn flatten(self) -> Flatten<Self> where
    Self::Output: Future,
    Self: Sized
[src]

Flatten the execution of this future when the successful result of this future is itself another future. Read more

fn flatten_stream(self) -> FlattenStream<Self> where
    Self::Output: Stream,
    Self: Sized
[src]

Flatten the execution of this future when the successful result of this future is a stream. Read more

fn fuse(self) -> Fuse<Self> where
    Self: Sized
[src]

Fuse a future such that poll will never again be called once it has completed. This method can be used to turn any Future into a FusedFuture. Read more

fn inspect<F>(self, f: F) -> Inspect<Self, F> where
    F: FnOnce(&Self::Output),
    Self: Sized
[src]

Do something with the output of a future before passing it on. Read more

fn catch_unwind(self) -> CatchUnwind<Self> where
    Self: Sized + UnwindSafe
[src]

Catches unwinding panics while polling the future. Read more

fn shared(self) -> Shared<Self> where
    Self: Sized,
    Self::Output: Clone
[src]

Create a cloneable handle to this future where all handles will resolve to the same result. Read more

fn remote_handle(self) -> (Remote<Self>, RemoteHandle<Self::Output>) where
    Self: Sized
[src]

Turn this future into a future that yields () on completion and sends its output to another future on a separate task. Read more

fn boxed(self) -> Pin<Box<Self>> where
    Self: Sized
[src]

Wrap the future in a Box, pinning it.

fn unit_error(self) -> UnitError<Self> where
    Self: Sized
[src]

Turns a Future into a TryFuture with Error = ().

fn poll_unpin(&mut self, waker: &Waker) -> Poll<Self::Output> where
    Self: Unpin + Sized
[src]

A convenience for calling Future::poll on Unpin future types.

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.