[][src]Enum async_macros::MaybeDone

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

A future that may have completed.

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 method.

Methods

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

Important traits for MaybeDone<Fut>
pub fn new(future: Fut) -> MaybeDone<Fut>[src]

Create a new instance of MaybeDone.

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

Returns an Option containing a 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 has not yet been called.

pub fn output_mut(self: Pin<&mut Self>) -> Option<&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 has not yet been called.

pub fn take(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: Debug + Future> Debug for MaybeDone<Fut> where
    Fut::Output: Debug
[src]

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

type Output = ()

The type of value produced on completion.

Auto Trait Implementations

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

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

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

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

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

Blanket Implementations

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

impl<T> From<T> for T[src]

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

The type returned in the event of a conversion error.

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

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

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