Skip to main content

PythonInstruction

Enum PythonInstruction 

Source
pub enum PythonInstruction {
Show 186 variants CACHE, BINARY_MODULO, INPLACE_MODULO, POP_TOP, PUSH_NULL, INTERPRETER_EXIT, END_FOR, END_SEND, NOP, UNARY_NEGATIVE, UNARY_NOT, UNARY_INVERT, RESERVED, BINARY_SLICE, GET_LEN, MATCH_MAPPING, MATCH_SEQUENCE, MATCH_KEYS, PUSH_EXC_INFO, CHECK_EXC_MATCH, CHECK_EG_MATCH, WITH_EXCEPT_START, BEFORE_ASYNC_WITH, BEFORE_WITH, END_ASYNC_FOR, CLEANUP_THROW, GET_ITER, GET_YIELD_FROM_ITER, LOAD_BUILD_CLASS, LOAD_ASSERTION_ERROR, RETURN_GENERATOR, SETUP_ANNOTATIONS, LOAD_LOCALS, POP_EXCEPT, MAKE_CELL, LOAD_CLOSURE, COPY_FREE_VARS, YIELD_VALUE, RESUME, INSTRUMENTED_END_FOR, INSTRUMENTED_END_SEND, INSTRUMENTED_INSTRUCTION, INSTRUMENTED_LINE, POP_BLOCK, INSTRUMENTED_POP_JUMP_IF_FALSE, INSTRUMENTED_POP_JUMP_IF_TRUE, INSTRUMENTED_JUMP_FORWARD, INSTRUMENTED_JUMP_BACKWARD, INSTRUMENTED_RETURN_VALUE, INSTRUMENTED_YIELD_VALUE, INSTRUMENTED_END_ASYNC_FOR, INSTRUMENTED_SETUP_FINALLY, INSTRUMENTED_RESUME, INSTRUMENTED_DELETE_SUBSCR, INSTRUMENTED_STORE_SUBSCR, INSTRUMENTED_CALL, INSTRUMENTED_EXTENDED_ARG, INSTRUMENTED_LIST_APPEND, INSTRUMENTED_SET_ADD, INSTRUMENTED_MAP_ADD, INSTRUMENTED_FOR_ITER, INSTRUMENTED_LOAD_SUPER_ATTR, INSTRUMENTED_POP_JUMP_IF_NONE, INSTRUMENTED_POP_JUMP_IF_NOT_NONE, INSTRUMENTED_CALL_FUNCTION_EX, INSTRUMENTED_RETURN_CONST, ROT_TWO, ROT_THREE, DUP_TOP, DUP_TOP_TWO, ROT_FOUR, UNARY_POSITIVE, POP_FINALLY, RETURN_VALUE, SETUP_CLEANUP(u32), SETUP_WITH(u32), END_ASYNC_WITH, WITH_CLEANUP_START, WITH_CLEANUP_FINISH, ASYNC_WITH_CLEANUP_START, ASYNC_WITH_CLEANUP_FINISH, GEN_START, GET_AWAITABLE_CORO, GET_AITER_CORO, GET_ANEXT_CORO, END_ASYNC_FOR_CORO, SEND(u32), POP_FRAME, RETURN_CONST(u32), SETUP_ASYNC_WITH(u32), INPLACE_ADD(u32), INPLACE_SUBTRACT(u32), INPLACE_MULTIPLY(u32), INPLACE_TRUE_DIVIDE(u32), STORE_SUBSCR(u32), DELETE_SUBSCR(u32), STORE_MAP(u32), CALL_FUNCTION_EX(u32), FORMAT_VALUE(u32), POP_JUMP_IF_FALSE(u32), POP_JUMP_IF_TRUE(u32), POP_JUMP_IF_NONE(u32), POP_JUMP_IF_NOT_NONE(u32), JUMP_IF_FALSE_OR_POP(u32), JUMP_IF_TRUE_OR_POP(u32), JUMP_FORWARD(u32), JUMP_BACKWARD(u32), LOAD_CONST(u32), LOAD_NAME(u32), STORE_NAME(u32), DELETE_NAME(u32), LOAD_FAST(u32), STORE_FAST(u32), DELETE_FAST(u32), LOAD_GLOBAL(u32), STORE_GLOBAL(u32), DELETE_GLOBAL(u32), LOAD_ATTR(u32), STORE_ATTR(u32), DELETE_ATTR(u32), COMPARE_OP(u32), BINARY_OP(u32), IMPORT_NAME(u32), IMPORT_FROM(u32), FOR_ITER(u32), GET_AWAITABLE(u32), GET_AITER(u32), GET_ANEXT(u32), JUMP_IF_NOT_EXC_MATCH(u32), SETUP_FINALLY(u32), SETUP_EXCEPT(u32), SETUP_LOOP(u32), EXTENDED_ARG(u32), LOAD_DEREF(u32), STORE_DEREF(u32), DELETE_DEREF(u32), LOAD_CLASSDEREF(u32), COPY_LOCAL(u32), LOAD_SUPER_ATTR(u32), MAKE_FUNCTION(u32), CALL_FUNCTION(u32), CALL_FUNCTION_KW(u32), LOAD_METHOD(u32), CALL_METHOD(u32), BUILD_TUPLE(u32), BUILD_LIST(u32), BUILD_SET(u32), BUILD_MAP(u32), BUILD_CONST_KEY_MAP(u32), BUILD_STRING(u32), LIST_APPEND(u32), SET_ADD(u32), MAP_ADD(u32), LIST_EXTEND(u32), SET_UPDATE(u32), DICT_UPDATE(u32), DICT_MERGE(u32), MATCH_CLASS(u32), COPY_DICT_WITHOUT_KEYS(u32), YIELD_FROM(u32), CALL_FINALLY(u32), CALL_INTRINSIC_1(u32), CALL_INTRINSIC_2(u32), KW_NAMES(u32), JUMP(u32), JUMP_NO_INTERRUPT(u32), IS_OP(u32), CONTAINS_OP(u32), COPY(u32), SWAP(u32), UNPACK_SEQUENCE(u32), UNPACK_EX(u32), CALL(u32), CALL_KW(u32), LOAD_FROM_DICT_OR_DEREF(u32), LOAD_SUPER_METHOD(u32), LOAD_ZERO_SUPER_METHOD(u32), STORE_FAST_MAYBE_NULL(u32), RERAISE(u32), BINARY_SUBSCR, STORE_SLICE, JUMP_ABSOLUTE(u32), POP_JUMP_FORWARD_IF_NOT_NONE(u32), POP_JUMP_FORWARD_IF_NONE(u32), RAISE_VARARGS(u32), UNKNOWN(u8, Option<u32>),
}
Expand description

表示 Python 字节码指令。

Variants§

§

CACHE

缓存操作码。

§

BINARY_MODULO

二进制模运算。

§

INPLACE_MODULO

就地模运算。

§

POP_TOP

弹出栈顶元素。

§

PUSH_NULL

推送 None 到栈顶。

§

INTERPRETER_EXIT

解释器退出。

§

END_FOR

结束 for 循环。

§

END_SEND

结束 send 操作。

§

NOP

无操作。

§

UNARY_NEGATIVE

一元负号。

§

UNARY_NOT

逻辑非。

§

UNARY_INVERT

按位取反。

§

RESERVED

保留操作码。

§

BINARY_SLICE

二进制切片。

§

GET_LEN

获取长度。

§

MATCH_MAPPING

匹配映射。

§

MATCH_SEQUENCE

匹配序列。

§

MATCH_KEYS

匹配键。

§

PUSH_EXC_INFO

推送异常信息。

§

CHECK_EXC_MATCH

检查异常匹配。

§

CHECK_EG_MATCH

检查异常组匹配。

§

WITH_EXCEPT_START

带有异常处理的 with 语句开始。

§

BEFORE_ASYNC_WITH

异步 with 语句之前。

§

BEFORE_WITH

with 语句之前。

§

END_ASYNC_FOR

结束异步 for 循环。

§

CLEANUP_THROW

清理并抛出异常。

§

GET_ITER

获取迭代器。

§

GET_YIELD_FROM_ITER

获取 yield from 迭代器。

§

LOAD_BUILD_CLASS

加载 build_class。

§

LOAD_ASSERTION_ERROR

加载 AssertionError。

§

RETURN_GENERATOR

返回生成器。

§

SETUP_ANNOTATIONS

设置注解。

§

LOAD_LOCALS

加载局部变量。

§

POP_EXCEPT

弹出异常。

§

MAKE_CELL

创建 cell 对象。

§

LOAD_CLOSURE

加载闭包。

§

COPY_FREE_VARS

复制自由变量。

§

YIELD_VALUE

yield 值。

§

RESUME

恢复执行。

§

INSTRUMENTED_END_FOR

带有工具的 for 循环结束。

§

INSTRUMENTED_END_SEND

带有工具的 send 结束。

§

INSTRUMENTED_INSTRUCTION

带有工具的指令。

§

INSTRUMENTED_LINE

带有工具的行。

§

POP_BLOCK

弹出块。

§

INSTRUMENTED_POP_JUMP_IF_FALSE

带有工具的如果为假则跳转。

§

INSTRUMENTED_POP_JUMP_IF_TRUE

带有工具的如果为真则跳转。

§

INSTRUMENTED_JUMP_FORWARD

带有工具的向前跳转。

§

INSTRUMENTED_JUMP_BACKWARD

带有工具的向后跳转。

§

INSTRUMENTED_RETURN_VALUE

带有工具的返回值。

§

INSTRUMENTED_YIELD_VALUE

带有工具的 yield 值。

§

INSTRUMENTED_END_ASYNC_FOR

带有工具的异步 for 循环结束。

§

INSTRUMENTED_SETUP_FINALLY

带有工具的设置 finally 块。

§

INSTRUMENTED_RESUME

带有工具的恢复执行。

§

INSTRUMENTED_DELETE_SUBSCR

带有工具的删除下标。

§

INSTRUMENTED_STORE_SUBSCR

带有工具的存储下标。

§

INSTRUMENTED_CALL

带有工具的调用。

§

INSTRUMENTED_EXTENDED_ARG

带有工具的扩展参数。

§

INSTRUMENTED_LIST_APPEND

带有工具的列表追加。

§

INSTRUMENTED_SET_ADD

带有工具的集合添加。

§

INSTRUMENTED_MAP_ADD

带有工具的映射添加。

§

INSTRUMENTED_FOR_ITER

带有工具的 for 迭代器。

§

INSTRUMENTED_LOAD_SUPER_ATTR

带有工具的加载 super 属性。

§

INSTRUMENTED_POP_JUMP_IF_NONE

带有工具的如果为 None 则弹出并跳转。

§

INSTRUMENTED_POP_JUMP_IF_NOT_NONE

带有工具的如果不为 None 则弹出并跳转。

§

INSTRUMENTED_CALL_FUNCTION_EX

带有工具的调用函数。

§

INSTRUMENTED_RETURN_CONST

带有工具的返回常量。

§

ROT_TWO

旋转栈顶两个元素。

§

ROT_THREE

旋转栈顶三个元素。

§

DUP_TOP

复制栈顶元素。

§

DUP_TOP_TWO

复制栈顶两个元素。

§

ROT_FOUR

旋转栈顶四个元素。

§

UNARY_POSITIVE

一元正号。

§

POP_FINALLY

弹出 finally 块。

§

RETURN_VALUE

返回值。

§

SETUP_CLEANUP(u32)

设置清理。

§

SETUP_WITH(u32)

设置 with 语句。

§

END_ASYNC_WITH

结束异步 with 语句。

§

WITH_CLEANUP_START

with 语句清理开始。

§

WITH_CLEANUP_FINISH

with 语句清理完成。

§

ASYNC_WITH_CLEANUP_START

异步 with 语句清理开始。

§

ASYNC_WITH_CLEANUP_FINISH

异步 with 语句清理完成。

§

GEN_START

生成器开始。

§

GET_AWAITABLE_CORO

获取可等待协程。

§

GET_AITER_CORO

获取异步迭代器协程。

§

GET_ANEXT_CORO

获取异步 next 协程。

§

END_ASYNC_FOR_CORO

结束异步 for 协程。

§

SEND(u32)

发送值。

§

POP_FRAME

弹出栈帧。

§

RETURN_CONST(u32)

返回常量。

§

SETUP_ASYNC_WITH(u32)

设置异步 with 语句。

§

INPLACE_ADD(u32)

就地加法。

§

INPLACE_SUBTRACT(u32)

就地减法。

§

INPLACE_MULTIPLY(u32)

就地乘法。

§

INPLACE_TRUE_DIVIDE(u32)

就地真除法。

§

STORE_SUBSCR(u32)

存储下标。

§

DELETE_SUBSCR(u32)

删除下标。

§

STORE_MAP(u32)

存储映射。

§

CALL_FUNCTION_EX(u32)

调用函数(扩展)。

§

FORMAT_VALUE(u32)

格式化值。

§

POP_JUMP_IF_FALSE(u32)

如果为假则弹出并跳转。

§

POP_JUMP_IF_TRUE(u32)

如果为真则弹出并跳转。

§

POP_JUMP_IF_NONE(u32)

如果为 None 则弹出并跳转。

§

POP_JUMP_IF_NOT_NONE(u32)

如果不为 None 则弹出并跳转。

§

JUMP_IF_FALSE_OR_POP(u32)

如果为假则跳转或弹出。

§

JUMP_IF_TRUE_OR_POP(u32)

如果为真则跳转或弹出。

§

JUMP_FORWARD(u32)

向前跳转。

§

JUMP_BACKWARD(u32)

向后跳转。

§

LOAD_CONST(u32)

加载常量。

§

LOAD_NAME(u32)

加载名称。

§

STORE_NAME(u32)

存储名称。

§

DELETE_NAME(u32)

删除名称。

§

LOAD_FAST(u32)

加载快速变量。

§

STORE_FAST(u32)

存储快速变量。

§

DELETE_FAST(u32)

删除快速变量。

§

LOAD_GLOBAL(u32)

加载全局变量。

§

STORE_GLOBAL(u32)

存储全局变量。

§

DELETE_GLOBAL(u32)

删除全局变量。

§

LOAD_ATTR(u32)

加载属性。

§

STORE_ATTR(u32)

存储属性。

§

DELETE_ATTR(u32)

删除属性。

§

COMPARE_OP(u32)

比较操作。

§

BINARY_OP(u32)

二进制操作。

§

IMPORT_NAME(u32)

导入名称。

§

IMPORT_FROM(u32)

从模块导入。

§

FOR_ITER(u32)

for 循环迭代器。

§

GET_AWAITABLE(u32)

获取可等待对象。

§

GET_AITER(u32)

获取异步迭代器。

§

GET_ANEXT(u32)

获取异步 next。

§

JUMP_IF_NOT_EXC_MATCH(u32)

如果异常不匹配则跳转。

§

SETUP_FINALLY(u32)

设置 finally 块。

§

SETUP_EXCEPT(u32)

设置 except 块。

§

SETUP_LOOP(u32)

设置循环块。

§

EXTENDED_ARG(u32)

扩展参数。

§

LOAD_DEREF(u32)

加载解引用变量。

§

STORE_DEREF(u32)

存储解引用变量。

§

DELETE_DEREF(u32)

删除解引用变量。

§

LOAD_CLASSDEREF(u32)

加载类解引用变量。

§

COPY_LOCAL(u32)

复制局部变量。

§

LOAD_SUPER_ATTR(u32)

加载 super 属性。

§

MAKE_FUNCTION(u32)

创建函数。

§

CALL_FUNCTION(u32)

调用函数。

§

CALL_FUNCTION_KW(u32)

调用带关键字参数的函数。

§

LOAD_METHOD(u32)

加载方法。

§

CALL_METHOD(u32)

调用方法。

§

BUILD_TUPLE(u32)

构建元组。

§

BUILD_LIST(u32)

构建列表。

§

BUILD_SET(u32)

构建集合。

§

BUILD_MAP(u32)

构建字典。

§

BUILD_CONST_KEY_MAP(u32)

构建常量键字典。

§

BUILD_STRING(u32)

构建字符串。

§

LIST_APPEND(u32)

列表追加。

§

SET_ADD(u32)

集合添加。

§

MAP_ADD(u32)

映射添加。

§

LIST_EXTEND(u32)

列表扩展。

§

SET_UPDATE(u32)

集合更新。

§

DICT_UPDATE(u32)

字典更新。

§

DICT_MERGE(u32)

字典合并。

§

MATCH_CLASS(u32)

匹配类。

§

COPY_DICT_WITHOUT_KEYS(u32)

复制不带键的字典。

§

YIELD_FROM(u32)

yield from。

§

CALL_FINALLY(u32)

调用 finally。

§

CALL_INTRINSIC_1(u32)

调用内置函数 1。

§

CALL_INTRINSIC_2(u32)

调用内置函数 2。

§

KW_NAMES(u32)

关键字参数名称。

§

JUMP(u32)

跳转。

§

JUMP_NO_INTERRUPT(u32)

无中断跳转。

§

IS_OP(u32)

是操作。

§

CONTAINS_OP(u32)

包含操作。

§

COPY(u32)

复制。

§

SWAP(u32)

交换。

§

UNPACK_SEQUENCE(u32)

解包序列。

§

UNPACK_EX(u32)

解包扩展。

§

CALL(u32)

调用。

§

CALL_KW(u32)

关键字调用。

§

LOAD_FROM_DICT_OR_DEREF(u32)

从字典或解引用加载。

§

LOAD_SUPER_METHOD(u32)

加载 super 方法。

§

LOAD_ZERO_SUPER_METHOD(u32)

加载零参数 super 方法。

§

STORE_FAST_MAYBE_NULL(u32)

存储快速变量(可能为 None)。

§

RERAISE(u32)

重新抛出异常。

§

BINARY_SUBSCR

二进制下标操作。

§

STORE_SLICE

存储切片。

§

JUMP_ABSOLUTE(u32)

绝对跳转指令,包含跳转目标地址。

§

POP_JUMP_FORWARD_IF_NOT_NONE(u32)

如果不为 None 则向前弹出并跳转。

§

POP_JUMP_FORWARD_IF_NONE(u32)

如果为 None 则向前弹出并跳转。

§

RAISE_VARARGS(u32)

抛出可变参数异常。

§

UNKNOWN(u8, Option<u32>)

解析失败的未知的指令,包含操作码和可能的参数。

Trait Implementations§

Source§

impl Clone for PythonInstruction

Source§

fn clone(&self) -> PythonInstruction

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PythonInstruction

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for PythonInstruction

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Hash for PythonInstruction

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for PythonInstruction

Source§

fn eq(&self, other: &PythonInstruction) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for PythonInstruction

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Copy for PythonInstruction

Source§

impl Eq for PythonInstruction

Source§

impl StructuralPartialEq for PythonInstruction

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,