pub enum OpCode {
CONSTANT,
ADD,
SUB,
MUL,
DIV,
MOD,
PRINT,
ERR,
}
impl From<OpCode> for u8 {
fn from(value: OpCode) -> Self {
use OpCode::*;
match value {
CONSTANT => 0x00,
ADD => 0x01,
SUB => 0x02,
MUL => 0x03,
DIV => 0x04,
MOD => 0x05,
PRINT => 0xFE,
ERR => 0xFF
}
}
}
impl From<u8> for OpCode {
fn from(value: u8) -> Self {
use OpCode::*;
match value {
0x00 => CONSTANT,
0x01 => ADD,
0x02 => SUB,
0x03 => MUL,
0x04 => DIV,
0x05 => MOD,
0xFE => PRINT,
_ => ERR
}
}
}