1#[derive(Debug, Clone, PartialEq, Eq)]
2pub enum BytecodeReadError {
3 ErrorBytecode {
4 message: Vec<u8>,
5 },
6 UnexpectedEof {
7 offset: usize,
8 requested: usize,
9 available: usize,
10 },
11 InvalidVersion {
12 version: u8,
13 },
14 InvalidTypeVersion {
15 version: u8,
16 },
17 InvalidTypeInfo {
18 offset: usize,
19 },
20 InvalidDebugInfo {
21 offset: usize,
22 },
23 InvalidOpcode {
24 opcode: u8,
25 offset: usize,
26 },
27 InvalidConstantTag {
28 tag: u8,
29 offset: usize,
30 },
31 InvalidFeedbackSlotKind {
32 kind: u8,
33 offset: usize,
34 },
35 InvalidStringId {
36 id: u32,
37 },
38 InvalidFunctionId {
39 id: u32,
40 },
41 FunctionGraphTooLarge {
42 blocks: usize,
43 },
44 MissingRegisterProducer {
45 block: usize,
46 register: u8,
47 },
48}
49
50impl BytecodeReadError {
51 pub fn error_bytecode_message(&self) -> Option<&[u8]> {
52 match self {
53 Self::ErrorBytecode { message } => Some(message),
54 _ => None,
55 }
56 }
57}