use std::fmt::Debug;
use std::sync::Arc;
use strum::Display;
#[derive(Debug, Display)]
pub enum MSchedulerError {
AddTaskFailed,
NoTaskMatched,
DuplicatedTaskId,
UnknownError,
PanicError,
ConsumerShutdownError,
TaskCancelled,
ExecutionError(Box<dyn Send + Sync + Debug + 'static>),
MongoDbError(Arc<mongodb::error::Error>),
}
pub type MResult<T> = Result<T, MSchedulerError>;