Skip to main content

TaskHandle

Struct TaskHandle 

Source
pub struct TaskHandle<R, E> { /* private fields */ }
Expand description

Lightweight result handle for a submitted callable task.

TaskHandle owns the receiving endpoint for exactly one task result. It can block through Self::get, poll non-blockingly through Self::try_get, or be awaited by value.

Implementations§

Source§

impl<R, E> TaskHandle<R, E>

Source

pub fn task_id(&self) -> TaskId

Returns the identifier assigned to this task.

§Returns

The task id stored in the shared task state.

Source

pub fn get(self) -> TaskResult<R, E>

Waits for the task to finish and returns its final result.

This method blocks the current thread until a result is available.

§Returns

Ok(R) if the task succeeds. If the accepted task returns Err(E), panics, is cancelled, or loses its completion endpoint before producing a value, the corresponding crate::TaskExecutionError is returned.

Source

pub fn try_get(self) -> TryGet<Self, R, E>

Attempts to retrieve the final result without blocking.

§Returns

TryGet::Ready with the final result when available, otherwise TryGet::Pending containing this handle.

Source

pub fn is_done(&self) -> bool

Returns whether the task has installed a terminal state.

§Returns

true after the task succeeds, fails, panics, is cancelled, or loses its completion endpoint. The final result send may still be racing with this status observation.

Trait Implementations§

Source§

impl<R, E> IntoFuture for TaskHandle<R, E>

Source§

fn into_future(self) -> Self::IntoFuture

Converts this handle into a future resolving to the task result.

Source§

type Output = Result<R, TaskExecutionError<E>>

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

type IntoFuture = TaskHandleFuture<R, E>

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

impl<R, E> TaskResultHandle<R, E> for TaskHandle<R, E>
where R: Send, E: Send,

Source§

fn is_done(&self) -> bool

Returns whether the tracked task state is terminal.

Source§

fn get(self) -> TaskResult<R, E>

Blocks until the result channel yields a task result.

Source§

fn try_get(self) -> TryGet<Self, R, E>

Attempts to read the result channel without blocking.

Auto Trait Implementations§

§

impl<R, E> Freeze for TaskHandle<R, E>

§

impl<R, E> !RefUnwindSafe for TaskHandle<R, E>

§

impl<R, E> Send for TaskHandle<R, E>
where R: Send, E: Send,

§

impl<R, E> !Sync for TaskHandle<R, E>

§

impl<R, E> Unpin for TaskHandle<R, E>

§

impl<R, E> UnsafeUnpin for TaskHandle<R, E>

§

impl<R, E> !UnwindSafe for TaskHandle<R, E>

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> DropFlavorWrapper<T> for T

Source§

type Flavor = MayDrop

The DropFlavor that wraps T into Self
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

Source§

const WITNESS: W = W::MAKE

A constant of the type witness
Source§

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

Source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
Source§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
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> IntoResult<T> for T

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.