archimedes_task_handler 0.2.0

A library to handle tasks for the Archimedes project
Documentation
#[derive(Debug, Eq, PartialEq, PartialOrd, Ord)]
pub enum RunTaskError<E> {
    TaskPanic,
    TaskAborted,
    TaskError(E),
}

#[derive(Debug, Eq, PartialEq, PartialOrd, Ord)]
pub struct SpawnTaskResult<E> {
    pub duration: std::time::Duration,
    pub result: Result<(), RunTaskError<E>>,
}

impl<E> SpawnTaskResult<E> {
    pub fn duration(&self) -> std::time::Duration {
        self.duration
    }

    pub fn result(&self) -> &Result<(), RunTaskError<E>> {
        &self.result
    }
}

impl<E> RunTaskError<E> {
    pub fn is_panic(&self) -> bool {
        matches!(self, RunTaskError::TaskPanic)
    }

    pub fn is_aborted(&self) -> bool {
        matches!(self, RunTaskError::TaskAborted)
    }

    pub fn is_task_error(&self) -> bool {
        matches!(self, RunTaskError::TaskError(_))
    }
}