use std::path::PathBuf;
#[derive(Debug)]
pub enum LoadError {
FileNotFound(PathBuf, String),
InvalidFrontmatter(String),
EnvVarNotSet {
var_name: String,
key: String,
},
FileReference {
path: PathBuf,
detail: String,
},
Other(String),
}
impl std::fmt::Display for LoadError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
LoadError::FileNotFound(path, detail) => {
write!(f, "File not found: {}: {}", path.display(), detail)
}
LoadError::InvalidFrontmatter(msg) => {
write!(f, "Invalid frontmatter: {msg}")
}
LoadError::EnvVarNotSet { var_name, key } => {
write!(
f,
"Environment variable '{var_name}' not set for key '{key}'"
)
}
LoadError::FileReference { path, detail } => {
write!(f, "File reference error: {}: {}", path.display(), detail)
}
LoadError::Other(msg) => {
write!(f, "Load error: {msg}")
}
}
}
}
impl std::error::Error for LoadError {}