Skip to main content

Instruction

Struct Instruction 

Source
#[repr(transparent)]
pub struct Instruction(pub u32);
Expand description

A single Lua bytecode instruction (unsigned 32-bit word).

Tuple Fields§

§0: u32

Implementations§

Source§

impl Instruction

Source

pub const fn get_arg(self, pos: u32, size: u32) -> u32

Extract a bit-field of size bits at position pos.

Source

pub fn set_arg(&mut self, v: u32, pos: u32, size: u32)

Set a bit-field of size bits at position pos to v.

Source

pub fn opcode(self) -> Option<OpCode>

Extract the opcode.

Source

pub fn set_opcode(&mut self, op: OpCode)

Replace the opcode field.

Source

pub const fn arg_a(self) -> u32

Source

pub fn set_arg_a(&mut self, v: u32)

Source

pub const fn arg_k(self) -> u32

Source

pub const fn test_k(self) -> bool

Source

pub fn set_arg_k(&mut self, v: u32)

Source

pub const fn arg_b(self) -> u32

Source

pub const fn arg_s_b(self) -> i32

Source

pub fn set_arg_b(&mut self, v: u32)

Source

pub const fn arg_c(self) -> u32

Source

pub const fn arg_s_c(self) -> i32

Source

pub fn set_arg_c(&mut self, v: u32)

Source

pub const fn arg_bx(self) -> u32

Source

pub fn set_arg_bx(&mut self, v: u32)

Source

pub const fn arg_s_bx(self) -> i32

Source

pub fn set_arg_s_bx(&mut self, b: i32)

Source

pub const fn arg_ax(self) -> u32

Source

pub fn set_arg_ax(&mut self, v: u32)

Source

pub const fn arg_s_j(self) -> i32

Source

pub fn set_arg_s_j(&mut self, j: i32)

Source

pub fn abck(op: OpCode, a: u32, b: u32, c: u32, k: u32) -> Self

Build an iABC instruction.

Source

pub fn abx(op: OpCode, a: u32, bc: u32) -> Self

Build an iABx instruction.

Source

pub fn ax(op: OpCode, a: u32) -> Self

Build an iAx instruction.

Source

pub fn sj(op: OpCode, j: u32, k: u32) -> Self

Build an isJ instruction.

Source

pub fn is_out_top(self) -> bool

True if this instruction sets L->top for the next instruction.

(testOTMode(GET_OPCODE(i)) && GETARG_C(i) == 0) || GET_OPCODE(i) == OP_TAILCALL

Source

pub fn is_in_top(self) -> bool

True if this instruction uses L->top from the previous instruction.

Source

pub fn op_mode(self) -> Option<OpMode>

Return the OpMode for this instruction.

Trait Implementations§

Source§

impl Clone for Instruction

Source§

fn clone(&self) -> Instruction

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Instruction

Source§

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

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

impl Default for Instruction

Source§

fn default() -> Instruction

Returns the “default value” for a type. Read more
Source§

impl PartialEq for Instruction

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 Copy for Instruction

Source§

impl Eq for Instruction

Source§

impl StructuralPartialEq for Instruction

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, 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.