use std::fmt;
#[derive(Debug)]
pub enum SimulationError {
PolicyLoad(String),
AuditParse(String),
IoError(std::io::Error),
InvalidDuration(String),
}
impl fmt::Display for SimulationError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::PolicyLoad(msg) => write!(f, "policy load error: {msg}"),
Self::AuditParse(msg) => write!(f, "audit log parse error: {msg}"),
Self::IoError(err) => write!(f, "I/O error: {err}"),
Self::InvalidDuration(msg) => write!(f, "invalid duration: {msg}"),
}
}
}
impl std::error::Error for SimulationError {}
impl From<std::io::Error> for SimulationError {
fn from(err: std::io::Error) -> Self {
Self::IoError(err)
}
}