Struct FutureHandle

Source
pub struct FutureHandle<T> { /* private fields */ }
Expand description

A handle to a running idle future.

You can use this handle to cancel the future and to retrieve the return value of a future that has finished.

If the Handle is dropped, the future will keep on running, and there will be no way to cancel it or get the return value.

This type is notably !Send.

Implementations§

Source§

impl<T> FutureHandle<T>

Source

pub fn cancel(self) -> Option<T>

If the future has finished, it returns Some(t) the first time it is called. If it has not finished, the future is dropped and it returns None.

Source

pub fn result(&self) -> Option<T>

If the future has finished, it returns Some(t). If it has not finished, it does nothing and return None.

Source

pub fn has_finished(&self) -> bool

Returns true if the future has finished, false otherwise. If it returns true then you can be sure that cancel will return Some(t).

Source

pub async fn future(self) -> T

Converts this handle into a future that is satisfied when the original job finishes. It returns the value returned by the original future.

Source

pub fn guard(self) -> FutureHandleGuard<T>

Creates a FutureHandleGuard that cancels the future on drop.

Auto Trait Implementations§

§

impl<T> Freeze for FutureHandle<T>

§

impl<T> !RefUnwindSafe for FutureHandle<T>

§

impl<T> !Send for FutureHandle<T>

§

impl<T> !Sync for FutureHandle<T>

§

impl<T> Unpin for FutureHandle<T>

§

impl<T> !UnwindSafe for FutureHandle<T>

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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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<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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more