use thiserror::Error;
pub type Result<T> = std::result::Result<T, ChrononError>;
#[derive(Debug, Error)]
pub enum ChrononError {
#[error("script not found: {0}")]
ScriptNotFound(String),
#[error("job not found: {0}")]
JobNotFound(String),
#[error("run not found: {0}")]
RunNotFound(String),
#[error("invalid cron expression: {0}")]
InvalidCron(String),
#[error("invalid timezone: {0}")]
InvalidTimezone(String),
#[error("parameter error: {0}")]
ParamError(String),
#[error("script mismatch for job '{job_name}': expected '{expected}', got '{actual}'")]
ScriptMismatch {
expected: String,
actual: String,
job_name: String,
},
#[error("storage error: {0}")]
StorageError(String),
#[error("internal error: {0}")]
Internal(String),
}
impl From<serde_json::Error> for ChrononError {
fn from(err: serde_json::Error) -> Self {
Self::ParamError(err.to_string())
}
}