1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum SyspulseError {
5 #[error("Daemon '{0}' not found")]
6 DaemonNotFound(String),
7 #[error("Daemon '{0}' already exists")]
8 DaemonAlreadyExists(String),
9 #[error("Invalid state transition from {from:?} to {to:?}")]
10 InvalidStateTransition { from: String, to: String },
11 #[error("Process error: {0}")]
12 Process(String),
13 #[error("Health check failed: {0}")]
14 HealthCheck(String),
15 #[error("IPC error: {0}")]
16 Ipc(String),
17 #[error("Registry error: {0}")]
18 Registry(String),
19 #[error("Config error: {0}")]
20 Config(String),
21 #[error("Scheduler error: {0}")]
22 Scheduler(String),
23 #[error("IO error: {0}")]
24 Io(#[from] std::io::Error),
25 #[error("Serialization error: {0}")]
26 Serialization(#[from] serde_json::Error),
27 #[error("Database error: {0}")]
28 Database(String),
29 #[error("Timeout after {0:?}")]
30 Timeout(std::time::Duration),
31}
32
33pub type Result<T> = std::result::Result<T, SyspulseError>;