Skip to main content

Task

Struct Task 

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

The outcome of an asynchronous operation (Task<TResult>; Task is Task<()>): a shared handle that ends once, with a result, an error or a cancellation.

Continuations (continue_with) run synchronously when the task ends (TaskContinuationOptions.ExecuteSynchronously); a task is also a Future of its outcome. Tasks belong to the thread that made them, like the observables (docs/porting/reactive.md, section 5.8).

Implementations§

Source§

impl<T: 'static> Task<T>

Source

pub fn from_result(result: T) -> Self

A task that has ended with result (Task.FromResult).

Source

pub fn from_exception(error: ObservableError) -> Self

A task that has ended with error (Task.FromException); a TaskCanceledError makes it canceled.

Source

pub fn from_canceled() -> Self

A canceled task (Task.FromCanceled).

Source

pub fn spawn_local( future: impl Future<Output = Result<T, ObservableError>> + 'static, ) -> Self

Runs future on the current thread and gives its task (the counterpart of an async method): see spawn_local.

Source

pub fn id(&self) -> u64

The identity of the task (Id).

Source

pub fn status(&self) -> TaskStatus

The state of the task (Status).

Source

pub fn is_completed(&self) -> bool

Whether the task has ended, in any way (IsCompleted).

Source

pub fn is_completed_successfully(&self) -> bool

Whether the task has ended with a result (IsCompletedSuccessfully).

Source

pub fn is_faulted(&self) -> bool

Whether the task has ended with an error (IsFaulted).

Source

pub fn is_canceled(&self) -> bool

Whether the task has been canceled (IsCanceled).

Source

pub fn exception(&self) -> Option<ObservableError>

The error of a faulted task (Exception, unwrapped from its AggregateException).

Source

pub fn result(&self) -> Result<T, ObservableError>
where T: Clone,

The outcome of an ended task: the result, the error of a faulted task, or a TaskCanceledError (Result, GetAwaiter().GetResult()).

§Panics

When the task has not ended: upstream blocks, which would deadlock the only thread.

Source

pub fn continue_with( &self, continuation: impl FnOnce(&Task<T>) + 'static, ) -> Option<ContinuationId>

Runs continuation when the task ends, synchronously on the thread that ends it, or at once when it has ended (ContinueWith with TaskContinuationOptions.ExecuteSynchronously). The id removes a continuation that has not run (remove_continuation, the cancellation token of ContinueWith); None when it ran at once.

Source

pub fn remove_continuation(&self, id: ContinuationId) -> bool

Removes a continuation that has not run; false when it has run or was removed.

Trait Implementations§

Source§

impl<T> Clone for Task<T>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T> Debug for Task<T>

Source§

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

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

impl<T: Clone + 'static> Future for Task<T>

Source§

type Output = Result<T, Rc<dyn Error>>

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<T> !RefUnwindSafe for Task<T>

§

impl<T> !Send for Task<T>

§

impl<T> !Sync for Task<T>

§

impl<T> !UnwindSafe for Task<T>

§

impl<T> Freeze for Task<T>
where Rc<TaskInner<T>>: Freeze,

§

impl<T> Unpin for Task<T>
where Rc<TaskInner<T>>: Unpin,

§

impl<T> UnsafeUnpin for Task<T>
where Rc<TaskInner<T>>: UnsafeUnpin,

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.