async_macros

Enum MaybeDone

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

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.

Implementations§

Source§

impl<Fut: Future> MaybeDone<Fut>

Source

pub fn new(future: Fut) -> MaybeDone<Fut>

Create a new instance of MaybeDone.

Source

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

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.

Source

pub fn output_mut(self: Pin<&mut Self>) -> Option<&mut Fut::Output>

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.

Source

pub fn take(self: Pin<&mut Self>) -> Option<Fut::Output>

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

Trait Implementations§

Source§

impl<Fut: Debug + Future> Debug for MaybeDone<Fut>
where Fut::Output: Debug,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

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

Source§

type Output = ()

The type of value produced on completion.
Source§

fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>

Attempts to resolve the future to a final value, registering the current task for wakeup if the value is not yet available. Read more

Auto Trait Implementations§

§

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

§

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

§

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,

§

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

§

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

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<F> IntoFuture for F
where F: Future,

Source§

type Output = <F as Future>::Output

The output that the future will produce on completion.
Source§

type IntoFuture = F

Which kind of future are we turning this into?
Source§

fn into_future(self) -> <F as IntoFuture>::IntoFuture

Creates a future from a value. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.