use std::fmt;
#[derive(Debug, Clone)]
pub enum GraphError {
NodeNotFound { node_id: i64 },
LinkNotFound { link_id: i64 },
ZoneNotFound { zone_id: i64 },
DuplicateId { entity: String, id: i64 },
InvalidTopology(String),
}
impl fmt::Display for GraphError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
GraphError::NodeNotFound { node_id } => {
write!(f, "node not found: {}", node_id)
}
GraphError::LinkNotFound { link_id } => {
write!(f, "link not found: {}", link_id)
}
GraphError::ZoneNotFound { zone_id } => {
write!(f, "zone not found: {}", zone_id)
}
GraphError::DuplicateId { entity, id } => {
write!(f, "duplicate {} id: {}", entity, id)
}
GraphError::InvalidTopology(msg) => {
write!(f, "invalid topology: {}", msg)
}
}
}
}