use std::fmt;
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum MermaidError {
EmptyInput,
ParseError {
line: usize,
message: String,
suggestion: Option<String>,
},
LayoutError(String),
}
impl fmt::Display for MermaidError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
MermaidError::EmptyInput => write!(f, "Empty input"),
MermaidError::ParseError {
line,
message,
suggestion,
} => {
write!(f, "Line {}: {}", line, message)?;
if let Some(sug) = suggestion {
write!(f, " (Suggestion: {})", sug)?;
}
Ok(())
}
MermaidError::LayoutError(msg) => write!(f, "Layout error: {}", msg),
}
}
}
impl std::error::Error for MermaidError {}