use crate::Op;
use core::mem;
include!(concat!(env!("OUT_DIR"), "/op_code.rs"));
impl Copy for OpCode {}
impl Clone for OpCode {
fn clone(&self) -> Self {
*self
}
}
impl From<OpCode> for u16 {
#[inline]
fn from(code: OpCode) -> Self {
code as u16
}
}
impl OpCode {
#[inline]
pub fn new(code: u16) -> Option<Self> {
if usize::from(code) >= crate::LEN_OPS {
return None;
}
Some(unsafe { mem::transmute::<u16, Self>(code) })
}
}