zen_expression/vm/
error.rs

1use thiserror::Error;
2
3#[derive(Debug, PartialEq, Eq, Clone, Error)]
4pub enum VMError {
5    #[error("Opcode {opcode}: {message}")]
6    OpcodeErr { opcode: String, message: String },
7
8    #[error("Opcode out of bounds")]
9    OpcodeOutOfBounds { index: usize, bytecode: String },
10
11    #[error("Stack out of bounds")]
12    StackOutOfBounds { stack: String },
13
14    #[error("Failed to parse date time")]
15    ParseDateTimeErr { timestamp: String },
16
17    #[error("Number conversion error")]
18    NumberConversionError,
19}
20
21pub(crate) type VMResult<T> = Result<T, VMError>;