use anyhow::Error; /// `WorkerTask` methods commonly used from contexts otherwise not related to the API server. pub trait TaskState { /// If the task should be aborted, this should fail with a reasonable error message. fn check_abort(&self) -> Result<(), Error>; /// Create a log message for this task. fn log(&self, level: log::Level, message: &std::fmt::Arguments); } /// Convenience implementation: impl TaskState for std::sync::Arc { fn check_abort(&self) -> Result<(), Error> { ::check_abort(&*self) } fn log(&self, level: log::Level, message: &std::fmt::Arguments) { ::log(&*self, level, message) } }