1use std::fmt;
2
3#[derive(Debug, PartialEq)]
4pub enum AriaError {
5 NoItems,
7 NoEligibleItems,
9 UserNotFound(String),
11 ItemNotFound(String),
13 CyclicPrerequisite(String),
15 NoFactors,
17 SerialisationError(String),
19}
20
21impl fmt::Display for AriaError {
22 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
23 match self {
24 AriaError::NoItems => write!(f, "No items registered"),
25 AriaError::NoEligibleItems => write!(f, "No eligible items for this user"),
26 AriaError::UserNotFound(id) => write!(f, "User not found: {id}"),
27 AriaError::ItemNotFound(id) => write!(f, "Item not found: {id}"),
28 AriaError::CyclicPrerequisite(id) => {
29 write!(f, "Cyclic prerequisite detected at item: {id}")
30 }
31 AriaError::NoFactors => write!(f, "Engine has no factors registered"),
32 AriaError::SerialisationError(msg) => write!(f, "Serialisation error: {msg}"),
33 }
34 }
35}
36
37impl std::error::Error for AriaError {}