use thiserror::Error;
pub type CapsulaResult<T> = Result<T, CapsulaError>;
#[derive(Debug, Error)]
pub enum CapsulaError {
#[error(transparent)]
Io(#[from] std::io::Error),
#[error("Serialization failed: {0}")]
Serialization(#[from] serde_json::Error),
#[error("Configuration error: {message}")]
Configuration { message: String },
#[error("Hook '{hook}' failed: {message}")]
HookFailed {
hook: String,
message: String,
#[source]
source: Box<dyn std::error::Error + Send + Sync>,
},
#[error("{0}")]
Other(String),
}