pub enum Instruction {
Show 81 variants
Error {
message: String,
},
NewFrame {
register_count: u8,
},
Copy {
target: u8,
source: u8,
},
SetNull {
register: u8,
},
SetBool {
register: u8,
value: bool,
},
SetNumber {
register: u8,
value: i64,
},
LoadFloat {
register: u8,
constant: ConstantIndex,
},
LoadInt {
register: u8,
constant: ConstantIndex,
},
LoadString {
register: u8,
constant: ConstantIndex,
},
LoadNonLocal {
register: u8,
constant: ConstantIndex,
},
ValueExport {
name: u8,
value: u8,
},
Import {
register: u8,
},
MakeTempTuple {
register: u8,
start: u8,
count: u8,
},
TempTupleToTuple {
register: u8,
source: u8,
},
MakeMap {
register: u8,
size_hint: u32,
},
SequenceStart {
size_hint: u32,
},
SequencePush {
value: u8,
},
SequencePushN {
start: u8,
count: u8,
},
SequenceToList {
register: u8,
},
SequenceToTuple {
register: u8,
},
Range {
register: u8,
start: u8,
end: u8,
},
RangeInclusive {
register: u8,
start: u8,
end: u8,
},
RangeTo {
register: u8,
end: u8,
},
RangeToInclusive {
register: u8,
end: u8,
},
RangeFrom {
register: u8,
start: u8,
},
RangeFull {
register: u8,
},
MakeIterator {
register: u8,
iterable: u8,
},
Function {
register: u8,
arg_count: u8,
capture_count: u8,
variadic: bool,
generator: bool,
arg_is_unpacked_tuple: bool,
size: u16,
},
Capture {
function: u8,
target: u8,
source: u8,
},
Negate {
register: u8,
value: u8,
},
Not {
register: u8,
value: u8,
},
Add {
register: u8,
lhs: u8,
rhs: u8,
},
Subtract {
register: u8,
lhs: u8,
rhs: u8,
},
Multiply {
register: u8,
lhs: u8,
rhs: u8,
},
Divide {
register: u8,
lhs: u8,
rhs: u8,
},
Remainder {
register: u8,
lhs: u8,
rhs: u8,
},
AddAssign {
lhs: u8,
rhs: u8,
},
SubtractAssign {
lhs: u8,
rhs: u8,
},
MultiplyAssign {
lhs: u8,
rhs: u8,
},
DivideAssign {
lhs: u8,
rhs: u8,
},
RemainderAssign {
lhs: u8,
rhs: u8,
},
Less {
register: u8,
lhs: u8,
rhs: u8,
},
LessOrEqual {
register: u8,
lhs: u8,
rhs: u8,
},
Greater {
register: u8,
lhs: u8,
rhs: u8,
},
GreaterOrEqual {
register: u8,
lhs: u8,
rhs: u8,
},
Equal {
register: u8,
lhs: u8,
rhs: u8,
},
NotEqual {
register: u8,
lhs: u8,
rhs: u8,
},
Jump {
offset: u16,
},
JumpBack {
offset: u16,
},
JumpIfTrue {
register: u8,
offset: u16,
},
JumpIfFalse {
register: u8,
offset: u16,
},
JumpIfNull {
register: u8,
offset: u16,
},
Call {
result: u8,
function: u8,
frame_base: u8,
arg_count: u8,
},
CallInstance {
result: u8,
function: u8,
instance: u8,
frame_base: u8,
arg_count: u8,
},
Return {
register: u8,
},
Yield {
register: u8,
},
Throw {
register: u8,
},
Size {
register: u8,
value: u8,
},
IterNext {
result: Option<u8>,
iterator: u8,
jump_offset: u16,
temporary_output: bool,
},
TempIndex {
register: u8,
value: u8,
index: i8,
},
SliceFrom {
register: u8,
value: u8,
index: i8,
},
SliceTo {
register: u8,
value: u8,
index: i8,
},
Index {
register: u8,
value: u8,
index: u8,
},
IndexMut {
register: u8,
index: u8,
value: u8,
},
MapInsert {
register: u8,
key: u8,
value: u8,
},
MetaInsert {
register: u8,
value: u8,
id: MetaKeyId,
},
MetaInsertNamed {
register: u8,
value: u8,
id: MetaKeyId,
name: u8,
},
MetaExport {
id: MetaKeyId,
value: u8,
},
MetaExportNamed {
id: MetaKeyId,
name: u8,
value: u8,
},
Access {
register: u8,
value: u8,
key: ConstantIndex,
},
AccessString {
register: u8,
value: u8,
key: u8,
},
TryStart {
arg_register: u8,
catch_offset: u16,
},
TryEnd,
Debug {
register: u8,
constant: ConstantIndex,
},
CheckSizeEqual {
register: u8,
size: usize,
},
CheckSizeMin {
register: u8,
size: usize,
},
AssertType {
value: u8,
allow_null: bool,
type_string: ConstantIndex,
},
CheckType {
value: u8,
allow_null: bool,
type_string: ConstantIndex,
jump_offset: u16,
},
StringStart {
size_hint: u32,
},
StringPush {
value: u8,
format_options: Option<StringFormatOptions>,
},
StringFinish {
register: u8,
},
}Expand description
Decoded instructions produced by an InstructionReader for execution in the runtime
For descriptions of each instruction’s purpose, see corresponding Op entries.
Variants§
Error
NewFrame
Copy
SetNull
SetBool
SetNumber
LoadFloat
LoadInt
LoadString
LoadNonLocal
ValueExport
Import
MakeTempTuple
TempTupleToTuple
MakeMap
SequenceStart
SequencePush
SequencePushN
SequenceToList
SequenceToTuple
Range
RangeInclusive
RangeTo
RangeToInclusive
RangeFrom
RangeFull
MakeIterator
Function
Fields
Capture
Negate
Not
Add
Subtract
Multiply
Divide
Remainder
AddAssign
SubtractAssign
MultiplyAssign
DivideAssign
RemainderAssign
Less
LessOrEqual
Greater
GreaterOrEqual
Equal
NotEqual
Jump
JumpBack
JumpIfTrue
JumpIfFalse
JumpIfNull
Call
CallInstance
Return
Yield
Throw
Size
IterNext
TempIndex
SliceFrom
SliceTo
Index
IndexMut
MapInsert
MetaInsert
MetaInsertNamed
MetaExport
MetaExportNamed
Access
AccessString
TryStart
TryEnd
Debug
CheckSizeEqual
CheckSizeMin
AssertType
CheckType
StringStart
StringPush
StringFinish
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Instruction
impl RefUnwindSafe for Instruction
impl Send for Instruction
impl Sync for Instruction
impl Unpin for Instruction
impl UnwindSafe for Instruction
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more