Skip to main content

TaskError

Enum TaskError 

Source
pub enum TaskError<E> {
    Fsm(E),
    Join(JoinError),
}
Expand description

Error type returned by the FSM background task.

This enum distinguishes between logical errors returned by your FSM handlers and runtime failures of the Tokio task itself (for example, panics or task aborts).

§Type Parameters

  • E: The logical error type defined in your impl block via type Error = ...;.

§Examples

use tokio_fsm::TaskError;

// Example of a match against a task's result
match task.await {
    Ok(final_context) => println!("FSM finished normally."),
    Err(TaskError::Fsm(e)) => println!("FSM aborted with a logical error: {}", e),
    Err(TaskError::Join(e)) => println!("Tokio task failed (e.g. panicked): {}", e),
}

Variants§

§

Fsm(E)

The FSM handler returned a logical error, triggering a shutdown.

This variant is used when your FSM handler returns Result::Err(...).

§

Join(JoinError)

The background task failed due to a panic or explicit task abort.

This wraps a tokio::task::JoinError.

Trait Implementations§

Source§

impl<E: Debug> Debug for TaskError<E>

Source§

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

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

impl<E> Display for TaskError<E>
where E: Display,

Source§

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

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

impl<E> Error for TaskError<E>
where Self: Debug + Display,

Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl<E> From<JoinError> for TaskError<E>

Source§

fn from(source: JoinError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<E> !RefUnwindSafe for TaskError<E>

§

impl<E> !UnwindSafe for TaskError<E>

§

impl<E> Freeze for TaskError<E>
where E: Freeze,

§

impl<E> Send for TaskError<E>
where E: Send,

§

impl<E> Sync for TaskError<E>
where E: Sync,

§

impl<E> Unpin for TaskError<E>
where E: Unpin,

§

impl<E> UnsafeUnpin for TaskError<E>
where E: 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> 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<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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.