pub enum Opcode {
Show 37 variants
PushNull,
PushBool(bool),
PushString(Arc<str>),
PushNumber(Decimal),
Pop,
Flatten,
Join,
Fetch,
FetchRootEnv,
FetchEnv(Arc<str>),
FetchFast(Vec<FetchFastTarget>),
Negate,
Not,
Equal,
Jump(Jump, u32),
In,
Compare(Compare),
Add,
Subtract,
Multiply,
Divide,
Modulo,
Exponent,
Slice,
Array,
Object,
Len,
IncrementIt,
IncrementCount,
GetCount,
GetLen,
Pointer,
Begin,
End,
CallFunction {
kind: FunctionKind,
arg_count: u32,
},
CallMethod {
kind: MethodKind,
arg_count: u32,
},
Interval {
left_bracket: Bracket,
right_bracket: Bracket,
},
}Expand description
虚拟机操作码枚举 定义了虚拟机可执行的所有指令类型,采用栈式架构
Variants§
PushNull
PushBool(bool)
PushString(Arc<str>)
PushNumber(Decimal)
Pop
Flatten
Join
Fetch
FetchRootEnv
FetchEnv(Arc<str>)
FetchFast(Vec<FetchFastTarget>)
Negate
Not
Equal
Jump(Jump, u32)
In
Compare(Compare)
Add
Subtract
Multiply
Divide
Modulo
Exponent
Slice
Array
Object
Len
IncrementIt
IncrementCount
GetCount
GetLen
Pointer
Begin
End
CallFunction
CallMethod
Interval
Trait Implementations§
impl Eq for Opcode
impl StructuralPartialEq for Opcode
Auto Trait Implementations§
impl Freeze for Opcode
impl RefUnwindSafe for Opcode
impl Send for Opcode
impl Sync for Opcode
impl Unpin for Opcode
impl UnwindSafe for Opcode
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more