simple_expressions/types/
error.rs1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum Error {
5 #[error("unable to resolve variable: {0:?}")]
6 ResolveFailed(String),
7 #[error("variable is not callable")]
8 NotCallable,
9 #[error("type mismatch: {0}")]
10 TypeMismatch(String),
11 #[error("divide by zero")]
12 DivideByZero,
13 #[error("evaluation failed: {0}")]
14 EvaluationFailed(String),
15 #[error("index out of bounds: {index} (len: {len})")]
16 IndexOutOfBounds { index: i64, len: usize },
17 #[error("{target}: {message}")]
18 WrongIndexType { target: &'static str, message: String },
19 #[error("not a dict")]
20 NotADict,
21 #[error("not indexable: {0}")]
22 NotIndexable(String),
23 #[error("no such key: {0}")]
24 NoSuchKey(String),
25 #[error("unknown member '{member}' for type {type_name}")]
26 UnknownMember { type_name: String, member: String },
27 #[error("parse error: {0}")]
28 ParseError(String),
29 #[error("internal parse error: {0}")]
30 InternalParserError(String),
31}
32
33pub type Result<T> = core::result::Result<T, Error>;