use std::fmt;
#[derive(Debug, Clone, PartialEq)]
pub enum DomainError {
MemoryBodyTooLarge { len: usize, limit: usize },
MemoryBodyContainsSecret { reason: &'static str },
UnknownMemoryStatus(String),
UnknownRelation(String),
}
impl fmt::Display for DomainError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
DomainError::MemoryBodyTooLarge { len, limit } => {
write!(f, "Memory body is {len} characters ({limit} char limit)")
}
DomainError::MemoryBodyContainsSecret { reason } => {
write!(f, "Memory body may contain a secret ({reason})")
}
DomainError::UnknownMemoryStatus(s) => write!(f, "Unknown memory status '{s}'"),
DomainError::UnknownRelation(s) => write!(f, "Unknown relation '{s}'"),
}
}
}
impl std::error::Error for DomainError {}
#[cfg(test)]
#[path = "../../tests/unit/domain/error.rs"]
mod tests;