use thiserror::Error;
#[derive(Error, Debug)]
pub enum ProcessorError {
#[error("Reference not found: {0}")]
ReferenceNotFound(String),
#[error("Date parse error: {0}")]
DateParseError(String),
#[error("Locale error: {0}")]
LocaleError(String),
#[error("Substitution error: {0}")]
SubstitutionError(String),
#[error("File I/O error: {0}")]
FileIO(#[from] std::io::Error),
#[error("Frontmatter parse error: {0}")]
FrontmatterParse(String),
#[error("Compound set validation error: {0}")]
CompoundSetValidation(String),
#[error("Parse error ({name}): {message}")]
RefsParse {
name: String,
message: String,
},
}
impl From<citum_refs::RefsError> for ProcessorError {
fn from(e: citum_refs::RefsError) -> Self {
match e {
citum_refs::RefsError::FileIO(io) => ProcessorError::FileIO(io),
citum_refs::RefsError::ParseError(name, message) => {
ProcessorError::RefsParse { name, message }
}
}
}
}