Spaces:
Sleeping
Sleeping
File size: 1,073 Bytes
ab9d3d3 2e868ad ab9d3d3 2e868ad ab9d3d3 | 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #[derive(Debug, Clone, Copy, PartialEq)]
pub enum Opcode {
INVCHK = 0x20,
TADD = 0x30,
TSUB = 0x31,
FADD = 0x40,
FVEL = 0x41,
CISS = 0x50,
CRET = 0x51,
CCAP = 0x52,
CDEF = 0x54,
CREW = 0x55,
IBND = 0x60,
IPRF = 0x61,
ILOCK = 0x63,
LBL = 0x72,
VCAST = 0x80,
VWEI = 0x81,
SIM = 0x90,
HALT = 0xA0,
NOOP = 0xA1,
}
impl Opcode {
pub fn from_byte(b: u8) -> Option<Self> {
use Opcode::*;
Some(match b {
0x20 => INVCHK,
0x30 => TADD,
0x31 => TSUB,
0x40 => FADD,
0x41 => FVEL,
0x50 => CISS,
0x51 => CRET,
0x52 => CCAP,
0x54 => CDEF,
0x55 => CREW,
0x60 => IBND,
0x61 => IPRF,
0x63 => ILOCK,
0x72 => LBL,
0x80 => VCAST,
0x81 => VWEI,
0x90 => SIM,
0xA0 => HALT,
0xA1 => NOOP,
_ => return None,
})
}
} |