pub enum TaskStatus<T> {
Idle,
Pending,
Resolved(T),
Aborted,
Error(Arc<dyn Error + Send + Sync>),
}Expand description
Lifecycle status for a one-shot async task.
Track the progress of a command execution through its lifecycle:
[Idle] → [Pending] → [Resolved] / [Error] / [Aborted].
Designed to be stored in domain state and polled from a render loop via
domain.read(), enabling UI patterns like:
use dbuff::TaskStatus;
let status = TaskStatus::Resolved(42);
assert!(status.is_resolved());
assert_eq!(status.resolved(), Some(&42));
let pending: TaskStatus<String> = TaskStatus::Pending;
assert!(pending.is_pending());
let err: TaskStatus<i32> = "timeout".to_string().into();
assert!(err.is_error());
assert_eq!(err.error().unwrap().to_string(), "timeout");Variants§
Idle
No computation has been started.
Pending
Computation is in progress.
Resolved(T)
Computation completed successfully with a value.
Aborted
Computation was cancelled.
Error(Arc<dyn Error + Send + Sync>)
Computation failed with an error message.
Implementations§
Source§impl<T> TaskStatus<T>
impl<T> TaskStatus<T>
Sourcepub fn is_pending(&self) -> bool
pub fn is_pending(&self) -> bool
Returns true if the status is Pending.
Sourcepub fn is_resolved(&self) -> bool
pub fn is_resolved(&self) -> bool
Returns true if the status is Resolved.
Sourcepub fn is_aborted(&self) -> bool
pub fn is_aborted(&self) -> bool
Returns true if the status is Aborted.
Trait Implementations§
Source§impl<T: Clone> Clone for TaskStatus<T>
impl<T: Clone> Clone for TaskStatus<T>
Source§fn clone(&self) -> TaskStatus<T>
fn clone(&self) -> TaskStatus<T>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<T: Debug> Debug for TaskStatus<T>
impl<T: Debug> Debug for TaskStatus<T>
Source§impl<T> Default for TaskStatus<T>
impl<T> Default for TaskStatus<T>
Source§fn default() -> TaskStatus<T>
fn default() -> TaskStatus<T>
Returns the “default value” for a type. Read more
Source§impl<T> From<String> for TaskStatus<T>
impl<T> From<String> for TaskStatus<T>
Source§impl<T> PartialEq for TaskStatus<T>where
T: PartialEq,
impl<T> PartialEq for TaskStatus<T>where
T: PartialEq,
impl<T> Eq for TaskStatus<T>where
T: Eq,
Auto Trait Implementations§
impl<T> Freeze for TaskStatus<T>where
T: Freeze,
impl<T> !RefUnwindSafe for TaskStatus<T>
impl<T> Send for TaskStatus<T>where
T: Send,
impl<T> Sync for TaskStatus<T>where
T: Sync,
impl<T> Unpin for TaskStatus<T>where
T: Unpin,
impl<T> UnsafeUnpin for TaskStatus<T>where
T: UnsafeUnpin,
impl<T> !UnwindSafe for TaskStatus<T>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more