No surprises here. We import the project dependencies and expose two public modules: instruction and individual. The instruction module at src/instruction.rs is feruscore's version of [u8], or, rather, the u8 in the array. Let's take a look. The structure at the root is Instruction:
#[derive(PartialEq, Eq, Copy, Clone, Debug)] pub struct Instruction { pub opcode: OpCode, pub modifier: Modifier, pub a_mode: Mode, pub a_offset: Offset, pub b_mode: Mode, pub b_offset: Offset, }
An instruction in Redcode is an opcode, a modifier for that opcode, an a-offset plus modifier and a b-offset plus modifier. (The a-field and b-field are the combination of offset and mode.) That's exactly what we have here. No need to deserialize from a byte ...