cmacro/
error.rs

1use std::fmt;
2
3/// A parsing or codegen error.
4#[derive(Debug, Clone, PartialEq, Eq)]
5pub enum Error {
6  /// Variable is unknown.
7  UnknownVariable(String),
8  /// Parsing failed.
9  ParserError,
10  /// Cannot evaluate expression.
11  UnsupportedExpression,
12  /// Recursive macro definition.
13  RecursiveDefinition(String),
14}
15
16impl fmt::Display for Error {
17  fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
18    match self {
19      Self::UnknownVariable(var_name) => write!(f, "unknown variable {}", var_name),
20      Self::ParserError => write!(f, "parser error"),
21      Self::UnsupportedExpression => write!(f, "unsupported expression"),
22      Self::RecursiveDefinition(macro_name) => write!(f, "recursive macro definition {}", macro_name),
23    }
24  }
25}