1use thiserror::Error;
4
5pub type Result<T> = std::result::Result<T, SchedulerError>;
7
8#[derive(Debug, Error)]
10pub enum SchedulerError {
11 #[error("Database error: {0}")]
13 Database(#[from] rusqlite::Error),
14
15 #[error("Azoth error: {0}")]
17 Azoth(#[from] azoth_core::error::AzothError),
18
19 #[error("Serialization error: {0}")]
21 Serialization(#[from] serde_json::Error),
22
23 #[error("Invalid schedule: {0}")]
25 InvalidSchedule(String),
26
27 #[error("Task handler not found: {0}")]
29 HandlerNotFound(String),
30
31 #[error("Task handler error: {0}")]
33 HandlerError(String),
34
35 #[error("Task execution timeout")]
37 Timeout,
38
39 #[error("Task not found: {0}")]
41 TaskNotFound(String),
42
43 #[error("Invalid task configuration: {0}")]
45 InvalidTask(String),
46
47 #[error("Cron parsing error: {0}")]
49 CronParse(#[from] cron::error::Error),
50
51 #[error("{0}")]
53 Other(String),
54}