#[derive(Clone, Copy, Debug, Eq, PartialEq)]
#[repr(u8)]
#[allow(missing_docs)] pub enum Op {
NewFrame,
Copy,
SetNull,
SetFalse,
SetTrue,
Set0,
Set1,
SetNumberU8,
SetNumberNegU8,
LoadFloat,
LoadInt,
LoadString,
LoadNonLocal,
Import,
ImportAll,
MakeTempTuple,
TempTupleToTuple,
MakeMap,
MakeIterator,
SequenceStart,
SequencePush,
SequencePushN,
SequenceToList,
SequenceToTuple,
StringStart,
StringPush,
StringFinish,
Function,
Capture,
Range,
RangeInclusive,
RangeTo,
RangeToInclusive,
RangeFrom,
RangeFull,
Negate,
Not,
Add,
Subtract,
Multiply,
Divide,
Remainder,
Power,
AddAssign,
SubtractAssign,
MultiplyAssign,
DivideAssign,
RemainderAssign,
PowerAssign,
Less,
LessOrEqual,
Greater,
GreaterOrEqual,
Equal,
NotEqual,
Jump,
JumpBack,
JumpIfFalse,
JumpIfTrue,
JumpIfNull,
Call,
CallInstance,
Return,
Yield,
Throw,
IterNext,
IterNextTemp,
IterNextQuiet,
IterUnpack,
TempIndex,
SliceFrom,
SliceTo,
Index,
IndexMut,
MapInsert,
MetaInsert,
MetaInsertNamed,
MetaExport,
MetaExportNamed,
ExportValue,
ExportEntry,
Access,
AccessString,
Size,
TryStart,
TryEnd,
Debug,
CheckSizeEqual,
CheckSizeMin,
AssertType,
AssertOptionalType,
CheckType,
CheckOptionalType,
Unused93,
Unused94,
Unused95,
Unused96,
Unused97,
Unused98,
Unused99,
Unused100,
Unused101,
Unused102,
Unused103,
Unused104,
Unused105,
Unused106,
Unused107,
Unused108,
Unused109,
Unused110,
Unused111,
Unused112,
Unused113,
Unused114,
Unused115,
Unused116,
Unused117,
Unused118,
Unused119,
Unused120,
Unused121,
Unused122,
Unused123,
Unused124,
Unused125,
Unused126,
Unused127,
Unused128,
Unused129,
Unused130,
Unused131,
Unused132,
Unused133,
Unused134,
Unused135,
Unused136,
Unused137,
Unused138,
Unused139,
Unused140,
Unused141,
Unused142,
Unused143,
Unused144,
Unused145,
Unused146,
Unused147,
Unused148,
Unused149,
Unused150,
Unused151,
Unused152,
Unused153,
Unused154,
Unused155,
Unused156,
Unused157,
Unused158,
Unused159,
Unused160,
Unused161,
Unused162,
Unused163,
Unused164,
Unused165,
Unused166,
Unused167,
Unused168,
Unused169,
Unused170,
Unused171,
Unused172,
Unused173,
Unused174,
Unused175,
Unused176,
Unused177,
Unused178,
Unused179,
Unused180,
Unused181,
Unused182,
Unused183,
Unused184,
Unused185,
Unused186,
Unused187,
Unused188,
Unused189,
Unused190,
Unused191,
Unused192,
Unused193,
Unused194,
Unused195,
Unused196,
Unused197,
Unused198,
Unused199,
Unused200,
Unused201,
Unused202,
Unused203,
Unused204,
Unused205,
Unused206,
Unused207,
Unused208,
Unused209,
Unused210,
Unused211,
Unused212,
Unused213,
Unused214,
Unused215,
Unused216,
Unused217,
Unused218,
Unused219,
Unused220,
Unused221,
Unused222,
Unused223,
Unused224,
Unused225,
Unused226,
Unused227,
Unused228,
Unused229,
Unused230,
Unused231,
Unused232,
Unused233,
Unused234,
Unused235,
Unused236,
Unused237,
Unused238,
Unused239,
Unused240,
Unused241,
Unused242,
Unused243,
Unused244,
Unused245,
Unused246,
Unused247,
Unused248,
Unused249,
Unused250,
Unused251,
Unused252,
Unused253,
Unused254,
Unused255,
}
impl From<u8> for Op {
fn from(op: u8) -> Op {
unsafe { std::mem::transmute(op) }
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn check_op_count() {
assert_eq!(
Op::Unused255 as u8,
255,
"Op should have 256 entries (see impl From<u8> for Op)"
);
}
}