#[derive(thiserror::Error, Debug)]
pub enum LorumError {
#[error("configuration not found: {path}")]
ConfigNotFound {
path: std::path::PathBuf,
},
#[error("failed to parse {format} config at {path}")]
ConfigParse {
format: String,
path: std::path::PathBuf,
#[source]
source: Box<dyn std::error::Error + Send + Sync>,
},
#[error("failed to write config at {path}")]
ConfigWrite {
path: std::path::PathBuf,
#[source]
source: std::io::Error,
},
#[error("failed to serialize config for {path}")]
ConfigSerialize {
path: std::path::PathBuf,
#[source]
source: Box<dyn std::error::Error + Send + Sync>,
},
#[error("adapter not found: {name}")]
AdapterNotFound {
name: String,
},
#[error("{source}")]
Io {
#[source]
source: std::io::Error,
},
#[error("{message}")]
Other {
message: String,
},
}
impl From<std::io::Error> for LorumError {
fn from(source: std::io::Error) -> Self {
Self::Io { source }
}
}