Struct zingen::Function

source ·
pub struct Function {
    pub backtrace: Backtrace,
    pub control: ControlStack,
    pub env: Env,
    pub locals: Locals,
    pub masm: MacroAssembler,
    pub table: JumpTable,
    pub ty: FuncType,
    pub is_main: bool,
}
Expand description

The code generation abstraction.

Fields§

§backtrace: Backtrace

The backtrace.

§control: ControlStack

Control stack frames.

§env: Env

WASM environment.

§locals: Locals

The defined locals for a function.

§masm: MacroAssembler

The macro assembler.

§table: JumpTable

The jump table.

§ty: FuncType

The function type.

§is_main: bool

If this function is the main function.

Implementations§

source§

impl Function

source

pub fn new(env: Env, ty: FuncType, is_main: bool) -> Result<Self>

Create a new code generator.

source

pub fn emit_locals( &mut self, locals: &mut LocalsReader<'_>, validator: &mut FuncValidator<ValidatorResources> ) -> Result<()>

Emit function locals

  1. the function parameters.
  2. function body locals.

NOTE: we don’t care about the origin offset of the locals. bcz we will serialize the locals to an index map anyway.

source

pub fn emit_operators( &mut self, ops: &mut OperatorsReader<'_>, validator: &mut FuncValidator<ValidatorResources> ) -> Result<()>

Emit function operators.

source

pub fn finish(self, jump_table: &mut JumpTable, pc: u16) -> Result<Buffer>

Finish code generation.

source§

impl Function

source

pub fn _call_indirect( &mut self, _type_index: u32, _table_index: u32, _table_byte: u8 ) -> Result<()>

The call indirect instruction calls a function indirectly through an operand indexing into a table.

source

pub fn _call(&mut self, index: u32) -> Result<()>

The call instruction calls a function specified by its index.

source

fn call_internal(&mut self, index: u32) -> Result<()>

Call internal functions

source

fn call_imported(&mut self, index: u32) -> Result<()>

Call imported functions

source§

impl Function

source

pub fn _if(&mut self, blockty: BlockType) -> Result<()>

The beginning of an if construct with an implicit block.

source

pub fn _block(&mut self, blockty: BlockType) -> Result<()>

The begeinning of a block construct. A sequence of instructions with a label at the end.

source

pub fn _loop(&mut self, blockty: BlockType) -> Result<()>

A block with a label which may be used to form loops.

source

pub fn _else(&mut self) -> Result<()>

Marks an else block of an if.

source

pub fn _select(&mut self) -> Result<()>

The select instruction selects one of its first two operands based on whether its third oprand is zero or not.

STACK: [cond, val2, val1] -> [val1] if cond is non-zero, [val2] otherwise.

source

pub fn _br(&mut self, _depth: u32) -> Result<()>

Branch to a given label in an enclosing construct.

Performs an unconditional branch.

source

pub fn _br_if(&mut self, depth: u32) -> Result<()>

Performs a conditional branch if i32 is non-zero.

Conditional branch to a given label in an enclosing construct.

source

pub fn _br_table(&mut self, _table: BrTable<'_>) -> Result<()>

A jump table which jumps to a label in an enclosing construct.

Performs an indirect branch through an operand indexing into the label vector that is an immediate to the instruction, or to the default target if the operand is out of bounds.

source

pub fn _end(&mut self) -> Result<()>

Handle the end of instructions for different situations.

TODO: (#28)

  • End of control flow operators.
  • End of function.
  • End of program.
source

pub fn _unreachable(&mut self) -> Result<()>

Mark as invalid for now.

TODO: recheck this implementation, if it is okay, provide more docs.

source

pub fn _nop(&mut self) -> Result<()>

Perform nothing in EVM bytecode.

source§

impl Function

source

pub(crate) fn handle_return(&mut self) -> Result<()>

Handle the end of the function.

source

pub(crate) fn handle_call_return(&mut self) -> Result<()>

Handle the return of a call.

source

pub(crate) fn handle_frame_popping( &mut self, frame: ControlStackFrame ) -> Result<()>

Handle the popping of a frame.

TODO: validate stack IO for all frames (#59)

source

pub(crate) fn handle_jumpdest(&mut self, original_pc: u16) -> Result<()>

Handle jumpdest.

source§

impl Function

source

pub fn _local_get(&mut self, local_index: u32) -> Result<()>

This instruction gets the value of a variable.

source

pub fn _local_set(&mut self, local_index: u32) -> Result<()>

This instruction sets the value of a variable.

source

pub fn _local_tee(&mut self, index: u32) -> Result<()>

This _local_tee is like _local_set, but it also returns the value on the stack.

source

pub fn _global_get(&mut self, _: u32) -> Result<()>

This instruction gets the value of a variable.

source

pub fn _global_set(&mut self, _: u32) -> Result<()>

This instruction sets the value of a variable.

source

fn _local_get_calldata(&mut self, local_index: usize) -> Result<()>

Local get from calldata.

source

fn _local_get_var(&mut self, local_index: usize) -> Result<()>

Local get for variables.

source§

impl Function

source

fn log_data(&mut self) -> Result<(i32, i32)>

Parse log data from the bytecode.

source

pub fn log(&mut self, count: usize) -> Result<()>

Log a message with topics.

Trait Implementations§

source§

impl ReachableState for Function

source§

fn is_reachable(&self) -> bool

Returns true if the current state of the program is reachable.
source§

impl<'a> VisitOperator<'a> for Function

§

type Output = Result<(), Error>

The result type of the visitor.
source§

fn visit_try_table(&mut self, try_table: TryTable) -> Self::Output

source§

fn visit_throw(&mut self, tag_index: u32) -> Self::Output

source§

fn visit_throw_ref(&mut self) -> Self::Output

source§

fn visit_try(&mut self, blockty: BlockType) -> Self::Output

source§

fn visit_catch(&mut self, tag_index: u32) -> Self::Output

source§

fn visit_rethrow(&mut self, relative_depth: u32) -> Self::Output

source§

fn visit_delegate(&mut self, relative_depth: u32) -> Self::Output

source§

fn visit_catch_all(&mut self) -> Self::Output

source§

fn visit_return_call(&mut self, function_index: u32) -> Self::Output

source§

fn visit_return_call_indirect( &mut self, type_index: u32, table_index: u32 ) -> Self::Output

source§

fn visit_typed_select(&mut self, ty: ValType) -> Self::Output

source§

fn visit_ref_null(&mut self, hty: HeapType) -> Self::Output

source§

fn visit_ref_is_null(&mut self) -> Self::Output

source§

fn visit_ref_func(&mut self, function_index: u32) -> Self::Output

source§

fn visit_ref_eq(&mut self) -> Self::Output

source§

fn visit_i32_extend8_s(&mut self) -> Self::Output

source§

fn visit_i32_extend16_s(&mut self) -> Self::Output

source§

fn visit_i64_extend8_s(&mut self) -> Self::Output

source§

fn visit_i64_extend16_s(&mut self) -> Self::Output

source§

fn visit_i64_extend32_s(&mut self) -> Self::Output

source§

fn visit_struct_new(&mut self, struct_type_index: u32) -> Self::Output

source§

fn visit_struct_new_default(&mut self, struct_type_index: u32) -> Self::Output

source§

fn visit_struct_get( &mut self, struct_type_index: u32, field_index: u32 ) -> Self::Output

source§

fn visit_struct_get_s( &mut self, struct_type_index: u32, field_index: u32 ) -> Self::Output

source§

fn visit_struct_get_u( &mut self, struct_type_index: u32, field_index: u32 ) -> Self::Output

source§

fn visit_struct_set( &mut self, struct_type_index: u32, field_index: u32 ) -> Self::Output

source§

fn visit_array_new(&mut self, array_type_index: u32) -> Self::Output

source§

fn visit_array_new_default(&mut self, array_type_index: u32) -> Self::Output

source§

fn visit_array_new_fixed( &mut self, array_type_index: u32, array_size: u32 ) -> Self::Output

source§

fn visit_array_new_data( &mut self, array_type_index: u32, array_data_index: u32 ) -> Self::Output

source§

fn visit_array_new_elem( &mut self, array_type_index: u32, array_elem_index: u32 ) -> Self::Output

source§

fn visit_array_get(&mut self, array_type_index: u32) -> Self::Output

source§

fn visit_array_get_s(&mut self, array_type_index: u32) -> Self::Output

source§

fn visit_array_get_u(&mut self, array_type_index: u32) -> Self::Output

source§

fn visit_array_set(&mut self, array_type_index: u32) -> Self::Output

source§

fn visit_array_len(&mut self) -> Self::Output

source§

fn visit_array_fill(&mut self, array_type_index: u32) -> Self::Output

source§

fn visit_array_copy( &mut self, array_type_index_dst: u32, array_type_index_src: u32 ) -> Self::Output

source§

fn visit_array_init_data( &mut self, array_type_index: u32, array_data_index: u32 ) -> Self::Output

source§

fn visit_array_init_elem( &mut self, array_type_index: u32, array_elem_index: u32 ) -> Self::Output

source§

fn visit_ref_test_non_null(&mut self, hty: HeapType) -> Self::Output

source§

fn visit_ref_test_nullable(&mut self, hty: HeapType) -> Self::Output

source§

fn visit_ref_cast_non_null(&mut self, hty: HeapType) -> Self::Output

source§

fn visit_ref_cast_nullable(&mut self, hty: HeapType) -> Self::Output

source§

fn visit_br_on_cast( &mut self, relative_depth: u32, from_ref_type: RefType, to_ref_type: RefType ) -> Self::Output

source§

fn visit_br_on_cast_fail( &mut self, relative_depth: u32, from_ref_type: RefType, to_ref_type: RefType ) -> Self::Output

source§

fn visit_any_convert_extern(&mut self) -> Self::Output

source§

fn visit_extern_convert_any(&mut self) -> Self::Output

source§

fn visit_ref_i31(&mut self) -> Self::Output

source§

fn visit_i31_get_s(&mut self) -> Self::Output

source§

fn visit_i31_get_u(&mut self) -> Self::Output

source§

fn visit_i32_trunc_sat_f32_s(&mut self) -> Self::Output

source§

fn visit_i32_trunc_sat_f32_u(&mut self) -> Self::Output

source§

fn visit_i32_trunc_sat_f64_s(&mut self) -> Self::Output

source§

fn visit_i32_trunc_sat_f64_u(&mut self) -> Self::Output

source§

fn visit_i64_trunc_sat_f32_s(&mut self) -> Self::Output

source§

fn visit_i64_trunc_sat_f32_u(&mut self) -> Self::Output

source§

fn visit_i64_trunc_sat_f64_s(&mut self) -> Self::Output

source§

fn visit_i64_trunc_sat_f64_u(&mut self) -> Self::Output

source§

fn visit_memory_init(&mut self, data_index: u32, mem: u32) -> Self::Output

source§

fn visit_data_drop(&mut self, data_index: u32) -> Self::Output

source§

fn visit_memory_copy(&mut self, dst_mem: u32, src_mem: u32) -> Self::Output

source§

fn visit_memory_fill(&mut self, mem: u32) -> Self::Output

source§

fn visit_table_init(&mut self, elem_index: u32, table: u32) -> Self::Output

source§

fn visit_elem_drop(&mut self, elem_index: u32) -> Self::Output

source§

fn visit_table_copy(&mut self, dst_table: u32, src_table: u32) -> Self::Output

source§

fn visit_table_fill(&mut self, table: u32) -> Self::Output

source§

fn visit_table_get(&mut self, table: u32) -> Self::Output

source§

fn visit_table_set(&mut self, table: u32) -> Self::Output

source§

fn visit_table_grow(&mut self, table: u32) -> Self::Output

source§

fn visit_table_size(&mut self, table: u32) -> Self::Output

source§

fn visit_memory_discard(&mut self, mem: u32) -> Self::Output

source§

fn visit_memory_atomic_notify(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_memory_atomic_wait32(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_memory_atomic_wait64(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_atomic_fence(&mut self) -> Self::Output

source§

fn visit_i32_atomic_load(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_load(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_load8_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_load16_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_load8_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_load16_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_load32_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_store(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_store(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_store8(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_store16(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_store8(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_store16(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_store32(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw_add(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw_add(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw8_add_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw16_add_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw8_add_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw16_add_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw32_add_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw_sub(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw_sub(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw8_sub_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw16_sub_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw8_sub_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw16_sub_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw32_sub_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw_and(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw_and(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw8_and_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw16_and_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw8_and_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw16_and_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw32_and_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw_or(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw_or(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw8_or_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw16_or_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw8_or_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw16_or_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw32_or_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw_xor(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw_xor(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw8_xor_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw16_xor_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw8_xor_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw16_xor_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw32_xor_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw_xchg(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw_xchg(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw8_xchg_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw16_xchg_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw8_xchg_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw16_xchg_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw32_xchg_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw_cmpxchg(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw_cmpxchg(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw8_cmpxchg_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i32_atomic_rmw16_cmpxchg_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw8_cmpxchg_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw16_cmpxchg_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_i64_atomic_rmw32_cmpxchg_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_v128_load(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_v128_load8x8_s(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_v128_load8x8_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_v128_load16x4_s(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_v128_load16x4_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_v128_load32x2_s(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_v128_load32x2_u(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_v128_load8_splat(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_v128_load16_splat(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_v128_load32_splat(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_v128_load64_splat(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_v128_load32_zero(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_v128_load64_zero(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_v128_store(&mut self, memarg: MemArg) -> Self::Output

source§

fn visit_v128_load8_lane(&mut self, memarg: MemArg, lane: u8) -> Self::Output

source§

fn visit_v128_load16_lane(&mut self, memarg: MemArg, lane: u8) -> Self::Output

source§

fn visit_v128_load32_lane(&mut self, memarg: MemArg, lane: u8) -> Self::Output

source§

fn visit_v128_load64_lane(&mut self, memarg: MemArg, lane: u8) -> Self::Output

source§

fn visit_v128_store8_lane(&mut self, memarg: MemArg, lane: u8) -> Self::Output

source§

fn visit_v128_store16_lane(&mut self, memarg: MemArg, lane: u8) -> Self::Output

source§

fn visit_v128_store32_lane(&mut self, memarg: MemArg, lane: u8) -> Self::Output

source§

fn visit_v128_store64_lane(&mut self, memarg: MemArg, lane: u8) -> Self::Output

source§

fn visit_v128_const(&mut self, value: V128) -> Self::Output

source§

fn visit_i8x16_shuffle(&mut self, lanes: [u8; 16]) -> Self::Output

source§

fn visit_i8x16_extract_lane_s(&mut self, lane: u8) -> Self::Output

source§

fn visit_i8x16_extract_lane_u(&mut self, lane: u8) -> Self::Output

source§

fn visit_i8x16_replace_lane(&mut self, lane: u8) -> Self::Output

source§

fn visit_i16x8_extract_lane_s(&mut self, lane: u8) -> Self::Output

source§

fn visit_i16x8_extract_lane_u(&mut self, lane: u8) -> Self::Output

source§

fn visit_i16x8_replace_lane(&mut self, lane: u8) -> Self::Output

source§

fn visit_i32x4_extract_lane(&mut self, lane: u8) -> Self::Output

source§

fn visit_i32x4_replace_lane(&mut self, lane: u8) -> Self::Output

source§

fn visit_i64x2_extract_lane(&mut self, lane: u8) -> Self::Output

source§

fn visit_i64x2_replace_lane(&mut self, lane: u8) -> Self::Output

source§

fn visit_f32x4_extract_lane(&mut self, lane: u8) -> Self::Output

source§

fn visit_f32x4_replace_lane(&mut self, lane: u8) -> Self::Output

source§

fn visit_f64x2_extract_lane(&mut self, lane: u8) -> Self::Output

source§

fn visit_f64x2_replace_lane(&mut self, lane: u8) -> Self::Output

source§

fn visit_i8x16_swizzle(&mut self) -> Self::Output

source§

fn visit_i8x16_splat(&mut self) -> Self::Output

source§

fn visit_i16x8_splat(&mut self) -> Self::Output

source§

fn visit_i32x4_splat(&mut self) -> Self::Output

source§

fn visit_i64x2_splat(&mut self) -> Self::Output

source§

fn visit_f32x4_splat(&mut self) -> Self::Output

source§

fn visit_f64x2_splat(&mut self) -> Self::Output

source§

fn visit_i8x16_eq(&mut self) -> Self::Output

source§

fn visit_i8x16_ne(&mut self) -> Self::Output

source§

fn visit_i8x16_lt_s(&mut self) -> Self::Output

source§

fn visit_i8x16_lt_u(&mut self) -> Self::Output

source§

fn visit_i8x16_gt_s(&mut self) -> Self::Output

source§

fn visit_i8x16_gt_u(&mut self) -> Self::Output

source§

fn visit_i8x16_le_s(&mut self) -> Self::Output

source§

fn visit_i8x16_le_u(&mut self) -> Self::Output

source§

fn visit_i8x16_ge_s(&mut self) -> Self::Output

source§

fn visit_i8x16_ge_u(&mut self) -> Self::Output

source§

fn visit_i16x8_eq(&mut self) -> Self::Output

source§

fn visit_i16x8_ne(&mut self) -> Self::Output

source§

fn visit_i16x8_lt_s(&mut self) -> Self::Output

source§

fn visit_i16x8_lt_u(&mut self) -> Self::Output

source§

fn visit_i16x8_gt_s(&mut self) -> Self::Output

source§

fn visit_i16x8_gt_u(&mut self) -> Self::Output

source§

fn visit_i16x8_le_s(&mut self) -> Self::Output

source§

fn visit_i16x8_le_u(&mut self) -> Self::Output

source§

fn visit_i16x8_ge_s(&mut self) -> Self::Output

source§

fn visit_i16x8_ge_u(&mut self) -> Self::Output

source§

fn visit_i32x4_eq(&mut self) -> Self::Output

source§

fn visit_i32x4_ne(&mut self) -> Self::Output

source§

fn visit_i32x4_lt_s(&mut self) -> Self::Output

source§

fn visit_i32x4_lt_u(&mut self) -> Self::Output

source§

fn visit_i32x4_gt_s(&mut self) -> Self::Output

source§

fn visit_i32x4_gt_u(&mut self) -> Self::Output

source§

fn visit_i32x4_le_s(&mut self) -> Self::Output

source§

fn visit_i32x4_le_u(&mut self) -> Self::Output

source§

fn visit_i32x4_ge_s(&mut self) -> Self::Output

source§

fn visit_i32x4_ge_u(&mut self) -> Self::Output

source§

fn visit_i64x2_eq(&mut self) -> Self::Output

source§

fn visit_i64x2_ne(&mut self) -> Self::Output

source§

fn visit_i64x2_lt_s(&mut self) -> Self::Output

source§

fn visit_i64x2_gt_s(&mut self) -> Self::Output

source§

fn visit_i64x2_le_s(&mut self) -> Self::Output

source§

fn visit_i64x2_ge_s(&mut self) -> Self::Output

source§

fn visit_f32x4_eq(&mut self) -> Self::Output

source§

fn visit_f32x4_ne(&mut self) -> Self::Output

source§

fn visit_f32x4_lt(&mut self) -> Self::Output

source§

fn visit_f32x4_gt(&mut self) -> Self::Output

source§

fn visit_f32x4_le(&mut self) -> Self::Output

source§

fn visit_f32x4_ge(&mut self) -> Self::Output

source§

fn visit_f64x2_eq(&mut self) -> Self::Output

source§

fn visit_f64x2_ne(&mut self) -> Self::Output

source§

fn visit_f64x2_lt(&mut self) -> Self::Output

source§

fn visit_f64x2_gt(&mut self) -> Self::Output

source§

fn visit_f64x2_le(&mut self) -> Self::Output

source§

fn visit_f64x2_ge(&mut self) -> Self::Output

source§

fn visit_v128_not(&mut self) -> Self::Output

source§

fn visit_v128_and(&mut self) -> Self::Output

source§

fn visit_v128_andnot(&mut self) -> Self::Output

source§

fn visit_v128_or(&mut self) -> Self::Output

source§

fn visit_v128_xor(&mut self) -> Self::Output

source§

fn visit_v128_bitselect(&mut self) -> Self::Output

source§

fn visit_v128_any_true(&mut self) -> Self::Output

source§

fn visit_i8x16_abs(&mut self) -> Self::Output

source§

fn visit_i8x16_neg(&mut self) -> Self::Output

source§

fn visit_i8x16_popcnt(&mut self) -> Self::Output

source§

fn visit_i8x16_all_true(&mut self) -> Self::Output

source§

fn visit_i8x16_bitmask(&mut self) -> Self::Output

source§

fn visit_i8x16_narrow_i16x8_s(&mut self) -> Self::Output

source§

fn visit_i8x16_narrow_i16x8_u(&mut self) -> Self::Output

source§

fn visit_i8x16_shl(&mut self) -> Self::Output

source§

fn visit_i8x16_shr_s(&mut self) -> Self::Output

source§

fn visit_i8x16_shr_u(&mut self) -> Self::Output

source§

fn visit_i8x16_add(&mut self) -> Self::Output

source§

fn visit_i8x16_add_sat_s(&mut self) -> Self::Output

source§

fn visit_i8x16_add_sat_u(&mut self) -> Self::Output

source§

fn visit_i8x16_sub(&mut self) -> Self::Output

source§

fn visit_i8x16_sub_sat_s(&mut self) -> Self::Output

source§

fn visit_i8x16_sub_sat_u(&mut self) -> Self::Output

source§

fn visit_i8x16_min_s(&mut self) -> Self::Output

source§

fn visit_i8x16_min_u(&mut self) -> Self::Output

source§

fn visit_i8x16_max_s(&mut self) -> Self::Output

source§

fn visit_i8x16_max_u(&mut self) -> Self::Output

source§

fn visit_i8x16_avgr_u(&mut self) -> Self::Output

source§

fn visit_i16x8_extadd_pairwise_i8x16_s(&mut self) -> Self::Output

source§

fn visit_i16x8_extadd_pairwise_i8x16_u(&mut self) -> Self::Output

source§

fn visit_i16x8_abs(&mut self) -> Self::Output

source§

fn visit_i16x8_neg(&mut self) -> Self::Output

source§

fn visit_i16x8_q15mulr_sat_s(&mut self) -> Self::Output

source§

fn visit_i16x8_all_true(&mut self) -> Self::Output

source§

fn visit_i16x8_bitmask(&mut self) -> Self::Output

source§

fn visit_i16x8_narrow_i32x4_s(&mut self) -> Self::Output

source§

fn visit_i16x8_narrow_i32x4_u(&mut self) -> Self::Output

source§

fn visit_i16x8_extend_low_i8x16_s(&mut self) -> Self::Output

source§

fn visit_i16x8_extend_high_i8x16_s(&mut self) -> Self::Output

source§

fn visit_i16x8_extend_low_i8x16_u(&mut self) -> Self::Output

source§

fn visit_i16x8_extend_high_i8x16_u(&mut self) -> Self::Output

source§

fn visit_i16x8_shl(&mut self) -> Self::Output

source§

fn visit_i16x8_shr_s(&mut self) -> Self::Output

source§

fn visit_i16x8_shr_u(&mut self) -> Self::Output

source§

fn visit_i16x8_add(&mut self) -> Self::Output

source§

fn visit_i16x8_add_sat_s(&mut self) -> Self::Output

source§

fn visit_i16x8_add_sat_u(&mut self) -> Self::Output

source§

fn visit_i16x8_sub(&mut self) -> Self::Output

source§

fn visit_i16x8_sub_sat_s(&mut self) -> Self::Output

source§

fn visit_i16x8_sub_sat_u(&mut self) -> Self::Output

source§

fn visit_i16x8_mul(&mut self) -> Self::Output

source§

fn visit_i16x8_min_s(&mut self) -> Self::Output

source§

fn visit_i16x8_min_u(&mut self) -> Self::Output

source§

fn visit_i16x8_max_s(&mut self) -> Self::Output

source§

fn visit_i16x8_max_u(&mut self) -> Self::Output

source§

fn visit_i16x8_avgr_u(&mut self) -> Self::Output

source§

fn visit_i16x8_extmul_low_i8x16_s(&mut self) -> Self::Output

source§

fn visit_i16x8_extmul_high_i8x16_s(&mut self) -> Self::Output

source§

fn visit_i16x8_extmul_low_i8x16_u(&mut self) -> Self::Output

source§

fn visit_i16x8_extmul_high_i8x16_u(&mut self) -> Self::Output

source§

fn visit_i32x4_extadd_pairwise_i16x8_s(&mut self) -> Self::Output

source§

fn visit_i32x4_extadd_pairwise_i16x8_u(&mut self) -> Self::Output

source§

fn visit_i32x4_abs(&mut self) -> Self::Output

source§

fn visit_i32x4_neg(&mut self) -> Self::Output

source§

fn visit_i32x4_all_true(&mut self) -> Self::Output

source§

fn visit_i32x4_bitmask(&mut self) -> Self::Output

source§

fn visit_i32x4_extend_low_i16x8_s(&mut self) -> Self::Output

source§

fn visit_i32x4_extend_high_i16x8_s(&mut self) -> Self::Output

source§

fn visit_i32x4_extend_low_i16x8_u(&mut self) -> Self::Output

source§

fn visit_i32x4_extend_high_i16x8_u(&mut self) -> Self::Output

source§

fn visit_i32x4_shl(&mut self) -> Self::Output

source§

fn visit_i32x4_shr_s(&mut self) -> Self::Output

source§

fn visit_i32x4_shr_u(&mut self) -> Self::Output

source§

fn visit_i32x4_add(&mut self) -> Self::Output

source§

fn visit_i32x4_sub(&mut self) -> Self::Output

source§

fn visit_i32x4_mul(&mut self) -> Self::Output

source§

fn visit_i32x4_min_s(&mut self) -> Self::Output

source§

fn visit_i32x4_min_u(&mut self) -> Self::Output

source§

fn visit_i32x4_max_s(&mut self) -> Self::Output

source§

fn visit_i32x4_max_u(&mut self) -> Self::Output

source§

fn visit_i32x4_dot_i16x8_s(&mut self) -> Self::Output

source§

fn visit_i32x4_extmul_low_i16x8_s(&mut self) -> Self::Output

source§

fn visit_i32x4_extmul_high_i16x8_s(&mut self) -> Self::Output

source§

fn visit_i32x4_extmul_low_i16x8_u(&mut self) -> Self::Output

source§

fn visit_i32x4_extmul_high_i16x8_u(&mut self) -> Self::Output

source§

fn visit_i64x2_abs(&mut self) -> Self::Output

source§

fn visit_i64x2_neg(&mut self) -> Self::Output

source§

fn visit_i64x2_all_true(&mut self) -> Self::Output

source§

fn visit_i64x2_bitmask(&mut self) -> Self::Output

source§

fn visit_i64x2_extend_low_i32x4_s(&mut self) -> Self::Output

source§

fn visit_i64x2_extend_high_i32x4_s(&mut self) -> Self::Output

source§

fn visit_i64x2_extend_low_i32x4_u(&mut self) -> Self::Output

source§

fn visit_i64x2_extend_high_i32x4_u(&mut self) -> Self::Output

source§

fn visit_i64x2_shl(&mut self) -> Self::Output

source§

fn visit_i64x2_shr_s(&mut self) -> Self::Output

source§

fn visit_i64x2_shr_u(&mut self) -> Self::Output

source§

fn visit_i64x2_add(&mut self) -> Self::Output

source§

fn visit_i64x2_sub(&mut self) -> Self::Output

source§

fn visit_i64x2_mul(&mut self) -> Self::Output

source§

fn visit_i64x2_extmul_low_i32x4_s(&mut self) -> Self::Output

source§

fn visit_i64x2_extmul_high_i32x4_s(&mut self) -> Self::Output

source§

fn visit_i64x2_extmul_low_i32x4_u(&mut self) -> Self::Output

source§

fn visit_i64x2_extmul_high_i32x4_u(&mut self) -> Self::Output

source§

fn visit_f32x4_ceil(&mut self) -> Self::Output

source§

fn visit_f32x4_floor(&mut self) -> Self::Output

source§

fn visit_f32x4_trunc(&mut self) -> Self::Output

source§

fn visit_f32x4_nearest(&mut self) -> Self::Output

source§

fn visit_f32x4_abs(&mut self) -> Self::Output

source§

fn visit_f32x4_neg(&mut self) -> Self::Output

source§

fn visit_f32x4_sqrt(&mut self) -> Self::Output

source§

fn visit_f32x4_add(&mut self) -> Self::Output

source§

fn visit_f32x4_sub(&mut self) -> Self::Output

source§

fn visit_f32x4_mul(&mut self) -> Self::Output

source§

fn visit_f32x4_div(&mut self) -> Self::Output

source§

fn visit_f32x4_min(&mut self) -> Self::Output

source§

fn visit_f32x4_max(&mut self) -> Self::Output

source§

fn visit_f32x4_pmin(&mut self) -> Self::Output

source§

fn visit_f32x4_pmax(&mut self) -> Self::Output

source§

fn visit_f64x2_ceil(&mut self) -> Self::Output

source§

fn visit_f64x2_floor(&mut self) -> Self::Output

source§

fn visit_f64x2_trunc(&mut self) -> Self::Output

source§

fn visit_f64x2_nearest(&mut self) -> Self::Output

source§

fn visit_f64x2_abs(&mut self) -> Self::Output

source§

fn visit_f64x2_neg(&mut self) -> Self::Output

source§

fn visit_f64x2_sqrt(&mut self) -> Self::Output

source§

fn visit_f64x2_add(&mut self) -> Self::Output

source§

fn visit_f64x2_sub(&mut self) -> Self::Output

source§

fn visit_f64x2_mul(&mut self) -> Self::Output

source§

fn visit_f64x2_div(&mut self) -> Self::Output

source§

fn visit_f64x2_min(&mut self) -> Self::Output

source§

fn visit_f64x2_max(&mut self) -> Self::Output

source§

fn visit_f64x2_pmin(&mut self) -> Self::Output

source§

fn visit_f64x2_pmax(&mut self) -> Self::Output

source§

fn visit_i32x4_trunc_sat_f32x4_s(&mut self) -> Self::Output

source§

fn visit_i32x4_trunc_sat_f32x4_u(&mut self) -> Self::Output

source§

fn visit_f32x4_convert_i32x4_s(&mut self) -> Self::Output

source§

fn visit_f32x4_convert_i32x4_u(&mut self) -> Self::Output

source§

fn visit_i32x4_trunc_sat_f64x2_s_zero(&mut self) -> Self::Output

source§

fn visit_i32x4_trunc_sat_f64x2_u_zero(&mut self) -> Self::Output

source§

fn visit_f64x2_convert_low_i32x4_s(&mut self) -> Self::Output

source§

fn visit_f64x2_convert_low_i32x4_u(&mut self) -> Self::Output

source§

fn visit_f32x4_demote_f64x2_zero(&mut self) -> Self::Output

source§

fn visit_f64x2_promote_low_f32x4(&mut self) -> Self::Output

source§

fn visit_i8x16_relaxed_swizzle(&mut self) -> Self::Output

source§

fn visit_i32x4_relaxed_trunc_f32x4_s(&mut self) -> Self::Output

source§

fn visit_i32x4_relaxed_trunc_f32x4_u(&mut self) -> Self::Output

source§

fn visit_i32x4_relaxed_trunc_f64x2_s_zero(&mut self) -> Self::Output

source§

fn visit_i32x4_relaxed_trunc_f64x2_u_zero(&mut self) -> Self::Output

source§

fn visit_f32x4_relaxed_madd(&mut self) -> Self::Output

source§

fn visit_f32x4_relaxed_nmadd(&mut self) -> Self::Output

source§

fn visit_f64x2_relaxed_madd(&mut self) -> Self::Output

source§

fn visit_f64x2_relaxed_nmadd(&mut self) -> Self::Output

source§

fn visit_i8x16_relaxed_laneselect(&mut self) -> Self::Output

source§

fn visit_i16x8_relaxed_laneselect(&mut self) -> Self::Output

source§

fn visit_i32x4_relaxed_laneselect(&mut self) -> Self::Output

source§

fn visit_i64x2_relaxed_laneselect(&mut self) -> Self::Output

source§

fn visit_f32x4_relaxed_min(&mut self) -> Self::Output

source§

fn visit_f32x4_relaxed_max(&mut self) -> Self::Output

source§

fn visit_f64x2_relaxed_min(&mut self) -> Self::Output

source§

fn visit_f64x2_relaxed_max(&mut self) -> Self::Output

source§

fn visit_i16x8_relaxed_q15mulr_s(&mut self) -> Self::Output

source§

fn visit_i16x8_relaxed_dot_i8x16_i7x16_s(&mut self) -> Self::Output

source§

fn visit_i32x4_relaxed_dot_i8x16_i7x16_add_s(&mut self) -> Self::Output

source§

fn visit_call_ref(&mut self, type_index: u32) -> Self::Output

source§

fn visit_return_call_ref(&mut self, type_index: u32) -> Self::Output

source§

fn visit_ref_as_non_null(&mut self) -> Self::Output

source§

fn visit_br_on_null(&mut self, relative_depth: u32) -> Self::Output

source§

fn visit_br_on_non_null(&mut self, relative_depth: u32) -> Self::Output

source§

fn visit_i32_add(&mut self) -> Self::Output

source§

fn visit_i64_add(&mut self) -> Self::Output

source§

fn visit_f32_add(&mut self) -> Self::Output

source§

fn visit_f64_add(&mut self) -> Self::Output

source§

fn visit_i32_sub(&mut self) -> Self::Output

source§

fn visit_i64_sub(&mut self) -> Self::Output

source§

fn visit_f32_sub(&mut self) -> Self::Output

source§

fn visit_f64_sub(&mut self) -> Self::Output

source§

fn visit_i32_mul(&mut self) -> Self::Output

source§

fn visit_i64_mul(&mut self) -> Self::Output

source§

fn visit_f32_mul(&mut self) -> Self::Output

source§

fn visit_f64_mul(&mut self) -> Self::Output

source§

fn visit_i32_eq(&mut self) -> Self::Output

source§

fn visit_i64_eq(&mut self) -> Self::Output

source§

fn visit_f32_eq(&mut self) -> Self::Output

source§

fn visit_f64_eq(&mut self) -> Self::Output

source§

fn visit_i32_ne(&mut self) -> Self::Output

source§

fn visit_i64_ne(&mut self) -> Self::Output

source§

fn visit_f32_ne(&mut self) -> Self::Output

source§

fn visit_f64_ne(&mut self) -> Self::Output

source§

fn visit_i32_div_s(&mut self) -> Self::Output

source§

fn visit_i64_div_s(&mut self) -> Self::Output

source§

fn visit_i32_div_u(&mut self) -> Self::Output

source§

fn visit_i64_div_u(&mut self) -> Self::Output

source§

fn visit_f32_div(&mut self) -> Self::Output

source§

fn visit_f64_div(&mut self) -> Self::Output

source§

fn visit_i32_lt_s(&mut self) -> Self::Output

source§

fn visit_i64_lt_s(&mut self) -> Self::Output

source§

fn visit_i32_lt_u(&mut self) -> Self::Output

source§

fn visit_i64_lt_u(&mut self) -> Self::Output

source§

fn visit_f32_lt(&mut self) -> Self::Output

source§

fn visit_f64_lt(&mut self) -> Self::Output

source§

fn visit_i32_gt_s(&mut self) -> Self::Output

source§

fn visit_i64_gt_s(&mut self) -> Self::Output

source§

fn visit_i32_gt_u(&mut self) -> Self::Output

source§

fn visit_i64_gt_u(&mut self) -> Self::Output

source§

fn visit_f32_gt(&mut self) -> Self::Output

source§

fn visit_f64_gt(&mut self) -> Self::Output

source§

fn visit_i32_ge_s(&mut self) -> Self::Output

source§

fn visit_i64_ge_s(&mut self) -> Self::Output

source§

fn visit_i32_ge_u(&mut self) -> Self::Output

source§

fn visit_i64_ge_u(&mut self) -> Self::Output

source§

fn visit_f32_ge(&mut self) -> Self::Output

source§

fn visit_f64_ge(&mut self) -> Self::Output

source§

fn visit_i32_le_s(&mut self) -> Self::Output

source§

fn visit_i64_le_s(&mut self) -> Self::Output

source§

fn visit_i32_le_u(&mut self) -> Self::Output

source§

fn visit_i64_le_u(&mut self) -> Self::Output

source§

fn visit_f32_le(&mut self) -> Self::Output

source§

fn visit_f64_le(&mut self) -> Self::Output

source§

fn visit_i32_and(&mut self) -> Self::Output

source§

fn visit_i64_and(&mut self) -> Self::Output

source§

fn visit_i32_clz(&mut self) -> Self::Output

source§

fn visit_i64_clz(&mut self) -> Self::Output

source§

fn visit_i32_ctz(&mut self) -> Self::Output

source§

fn visit_i64_ctz(&mut self) -> Self::Output

source§

fn visit_i32_eqz(&mut self) -> Self::Output

source§

fn visit_i64_eqz(&mut self) -> Self::Output

source§

fn visit_i32_or(&mut self) -> Self::Output

source§

fn visit_i64_or(&mut self) -> Self::Output

source§

fn visit_i32_popcnt(&mut self) -> Self::Output

source§

fn visit_i64_popcnt(&mut self) -> Self::Output

source§

fn visit_i32_rotl(&mut self) -> Self::Output

source§

fn visit_i64_rotl(&mut self) -> Self::Output

source§

fn visit_i32_rotr(&mut self) -> Self::Output

source§

fn visit_i64_rotr(&mut self) -> Self::Output

source§

fn visit_i32_shl(&mut self) -> Self::Output

source§

fn visit_i64_shl(&mut self) -> Self::Output

source§

fn visit_i32_xor(&mut self) -> Self::Output

source§

fn visit_i64_xor(&mut self) -> Self::Output

source§

fn visit_i32_shr_s(&mut self) -> Self::Output

source§

fn visit_i64_shr_s(&mut self) -> Self::Output

source§

fn visit_i32_shr_u(&mut self) -> Self::Output

source§

fn visit_i64_shr_u(&mut self) -> Self::Output

source§

fn visit_i32_trunc_f32_s(&mut self) -> Self::Output

source§

fn visit_i64_trunc_f32_s(&mut self) -> Self::Output

source§

fn visit_i32_trunc_f32_u(&mut self) -> Self::Output

source§

fn visit_i64_trunc_f32_u(&mut self) -> Self::Output

source§

fn visit_i32_trunc_f64_s(&mut self) -> Self::Output

source§

fn visit_i64_trunc_f64_s(&mut self) -> Self::Output

source§

fn visit_i32_trunc_f64_u(&mut self) -> Self::Output

source§

fn visit_i64_trunc_f64_u(&mut self) -> Self::Output

source§

fn visit_f32_abs(&mut self) -> Self::Output

source§

fn visit_f64_abs(&mut self) -> Self::Output

source§

fn visit_f32_ceil(&mut self) -> Self::Output

source§

fn visit_f64_ceil(&mut self) -> Self::Output

source§

fn visit_f32_copysign(&mut self) -> Self::Output

source§

fn visit_f64_copysign(&mut self) -> Self::Output

source§

fn visit_f32_floor(&mut self) -> Self::Output

source§

fn visit_f64_floor(&mut self) -> Self::Output

source§

fn visit_f32_max(&mut self) -> Self::Output

source§

fn visit_f64_max(&mut self) -> Self::Output

source§

fn visit_f32_min(&mut self) -> Self::Output

source§

fn visit_f64_min(&mut self) -> Self::Output

source§

fn visit_f32_nearest(&mut self) -> Self::Output

source§

fn visit_f64_nearest(&mut self) -> Self::Output

source§

fn visit_f32_neg(&mut self) -> Self::Output

source§

fn visit_f64_neg(&mut self) -> Self::Output

source§

fn visit_f32_sqrt(&mut self) -> Self::Output

source§

fn visit_f64_sqrt(&mut self) -> Self::Output

source§

fn visit_f32_convert_i32_s(&mut self) -> Self::Output

source§

fn visit_f64_convert_i32_s(&mut self) -> Self::Output

source§

fn visit_f32_convert_i32_u(&mut self) -> Self::Output

source§

fn visit_f64_convert_i32_u(&mut self) -> Self::Output

source§

fn visit_f32_convert_i64_s(&mut self) -> Self::Output

source§

fn visit_f64_convert_i64_s(&mut self) -> Self::Output

source§

fn visit_f32_convert_i64_u(&mut self) -> Self::Output

source§

fn visit_f64_convert_i64_u(&mut self) -> Self::Output

source§

fn visit_f32_trunc(&mut self) -> Self::Output

source§

fn visit_f64_trunc(&mut self) -> Self::Output

source§

fn visit_i32_rem_s(&mut self) -> Self::Output

source§

fn visit_i64_rem_s(&mut self) -> Self::Output

source§

fn visit_i32_rem_u(&mut self) -> Self::Output

source§

fn visit_i64_rem_u(&mut self) -> Self::Output

source§

fn visit_i32_load(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_i64_load(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_f32_load(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_f64_load(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_i32_load8_s(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_i64_load8_s(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_i32_load8_u(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_i64_load8_u(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_i32_load16_s(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_i64_load16_s(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_i32_load16_u(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_i64_load16_u(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_i64_load32_s(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_i64_load32_u(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_i32_store8(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_i64_store8(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_i32_store16(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_i64_store16(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_i32_store(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_i64_store(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_f32_store(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_f64_store(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_i64_store32(&mut self, _arg: MemArg) -> Self::Output

source§

fn visit_drop(&mut self) -> Self::Output

source§

fn visit_memory_grow(&mut self, mem: u32, mem_byte: u8) -> Self::Output

source§

fn visit_memory_size(&mut self, mem: u32, mem_byte: u8) -> Self::Output

source§

fn visit_i32_const(&mut self, value: i32) -> Self::Output

source§

fn visit_i64_const(&mut self, value: i64) -> Self::Output

source§

fn visit_f32_const(&mut self, value: Ieee32) -> Self::Output

source§

fn visit_f64_const(&mut self, value: Ieee64) -> Self::Output

source§

fn visit_i32_wrap_i64(&mut self) -> Self::Output

source§

fn visit_i64_extend_i32_s(&mut self) -> Self::Output

source§

fn visit_i64_extend_i32_u(&mut self) -> Self::Output

source§

fn visit_f32_demote_f64(&mut self) -> Self::Output

source§

fn visit_f64_promote_f32(&mut self) -> Self::Output

source§

fn visit_i32_reinterpret_f32(&mut self) -> Self::Output

source§

fn visit_i64_reinterpret_f64(&mut self) -> Self::Output

source§

fn visit_f32_reinterpret_i32(&mut self) -> Self::Output

source§

fn visit_f64_reinterpret_i64(&mut self) -> Self::Output

source§

fn visit_return(&mut self) -> Self::Output

source§

fn visit_else(&mut self) -> Self::Output

source§

fn visit_select(&mut self) -> Self::Output

source§

fn visit_end(&mut self) -> Self::Output

source§

fn visit_nop(&mut self) -> Self::Output

source§

fn visit_unreachable(&mut self) -> Self::Output

source§

fn visit_if(&mut self, blockty: BlockType) -> Self::Output

source§

fn visit_block(&mut self, blockty: BlockType) -> Self::Output

source§

fn visit_loop(&mut self, blockty: BlockType) -> Self::Output

source§

fn visit_br(&mut self, relative_depth: u32) -> Self::Output

source§

fn visit_br_if(&mut self, relative_depth: u32) -> Self::Output

source§

fn visit_br_table(&mut self, table: BrTable<'_>) -> Self::Output

source§

fn visit_local_get(&mut self, local_index: u32) -> Self::Output

source§

fn visit_local_set(&mut self, local_index: u32) -> Self::Output

source§

fn visit_local_tee(&mut self, local_index: u32) -> Self::Output

source§

fn visit_global_get(&mut self, global_index: u32) -> Self::Output

source§

fn visit_global_set(&mut self, global_index: u32) -> Self::Output

source§

fn visit_call(&mut self, func_index: u32) -> Self::Output

source§

fn visit_call_indirect( &mut self, type_index: u32, table_index: u32, table_byte: u8 ) -> Self::Output

§

fn visit_operator(&mut self, op: &Operator<'a>) -> Self::Output

Visits the [Operator] op using the given offset. Read more

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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, U> TryFrom<U> for T
where U: Into<T>,

§

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

§

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

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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