Skip to main content

TrackedTask

Struct TrackedTask 

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

Result handle with active status tracking and pre-start cancellation.

Implementations§

Source§

impl<R, E> TrackedTask<R, E>

Source

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

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

§Returns

The final task result.

Source

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

Attempts to retrieve the final result without blocking.

§Returns

A ready result or the pending tracked handle.

Source

pub fn is_done(&self) -> bool
where R: Send, E: Send,

Returns whether the tracked 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.

Source

pub fn status(&self) -> TaskStatus

Returns the currently observed task status.

§Returns

The current task status.

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 cancel(&self) -> CancelResult

Attempts to cancel this task before it starts.

§Returns

The observed cancellation outcome.

Trait Implementations§

Source§

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

Source§

fn into_future(self) -> Self::IntoFuture

Converts this tracked 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 TrackedTask<R, E>
where R: Send, E: Send,

Source§

fn is_done(&self) -> bool

Returns whether the tracked state is terminal.

Source§

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

Blocks until the underlying result handle yields a result.

Source§

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

Attempts to retrieve the underlying result without blocking.

Source§

impl<R, E> TrackedTaskHandle<R, E> for TrackedTask<R, E>
where R: Send, E: Send,

Source§

fn status(&self) -> TaskStatus

Returns the currently observed task status.

Source§

fn cancel(&self) -> CancelResult

Attempts to publish a cancellation result while the task is pending.

Auto Trait Implementations§

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<R, E> !UnwindSafe for TrackedTask<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.