use bit_struct::{enums, u4};

/// The integer used for storing opcodes.
pub type OpcodeRepr = u4;

enums! {
    /// An enum that contains the opcode.
    pub Opcode {
        NoOperation,
        Halt,

        Addition,
        Subtraction,
        BitwiseNOR,
        BitwiseAND,
        BitwiseXOR,
        RightShift,

        LoadImmediate,
        AddImmediate,

        Jump,
        Branch,
        Call,
        Return,

        MemoryLoad,
        MemoryStore
    }
}
