1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
use std::num::TryFromIntError;
#[derive(thiserror::Error, Debug, Clone)]
pub enum Error {
#[error("frame stack is too short at offset {0}")]
TruncatedFrameStack(usize),
#[error("operand stack is too short at offset {0}")]
TruncatedOperandStack(usize),
#[error("empty stack at offset {0}")]
EmptyStack(usize),
#[error("type index {0} is out of range")]
TypeIndexRange(u32, #[source] TryFromIntError),
#[error("type index {0} refers to a non-existent type")]
TypeIndex(u32),
#[error("function index {0} is out of range")]
FunctionIndexRange(u32, #[source] TryFromIntError),
#[error("function index {0} refers to a non-existent type")]
FunctionIndex(u32),
#[error("global index {0} is out of range")]
GlobalIndexRange(u32, #[source] TryFromIntError),
#[error("global index {0} refers to a non-existent global")]
GlobalIndex(u32),
#[error("table index {0} is out of range")]
TableIndexRange(u32, #[source] TryFromIntError),
#[error("table index {0} refers to a non-existent table")]
TableIndex(u32),
#[error("type of local {0} could cannot be found")]
LocalIndex(u32),
#[error("too many frames in the function")]
TooManyFrames,
}