use std::fmt;
#[derive(Debug, PartialEq)]
pub enum AriaError {
NoItems,
NoEligibleItems,
UserNotFound(String),
ItemNotFound(String),
CyclicPrerequisite(String),
NoFactors,
SerialisationError(String),
}
impl fmt::Display for AriaError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
AriaError::NoItems => write!(f, "No items registered"),
AriaError::NoEligibleItems => write!(f, "No eligible items for this user"),
AriaError::UserNotFound(id) => write!(f, "User not found: {id}"),
AriaError::ItemNotFound(id) => write!(f, "Item not found: {id}"),
AriaError::CyclicPrerequisite(id) => {
write!(f, "Cyclic prerequisite detected at item: {id}")
}
AriaError::NoFactors => write!(f, "Engine has no factors registered"),
AriaError::SerialisationError(msg) => write!(f, "Serialisation error: {msg}"),
}
}
}
impl std::error::Error for AriaError {}