camel_language_api/
error.rs1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum LanguageError {
5 #[error("parse error in expression `{expr}`: {reason}")]
6 ParseError { expr: String, reason: String },
7
8 #[error("evaluation error: {0}")]
9 EvalError(String),
10
11 #[error("unknown variable: {0}")]
12 UnknownVariable(String),
13
14 #[error("language `{0}` not found in registry")]
15 NotFound(String),
16
17 #[error("feature '{feature}' not supported by language '{language}'")]
18 NotSupported { feature: String, language: String },
19}
20
21impl LanguageError {
22 pub fn eval_error(expr: &str, message: impl std::fmt::Display) -> Self {
26 LanguageError::EvalError(format!("in expression `{expr}`: {message}"))
27 }
28}