Trait wasmparser::WasmModuleResources

source ·
pub trait WasmModuleResources {
    type FuncType: WasmFuncType;

Show 14 methods // Required methods fn table_at(&self, at: u32) -> Option<TableType>; fn memory_at(&self, at: u32) -> Option<MemoryType>; fn tag_at(&self, at: u32) -> Option<&Self::FuncType>; fn global_at(&self, at: u32) -> Option<GlobalType>; fn func_type_at(&self, type_idx: u32) -> Option<&Self::FuncType>; fn type_index_of_function(&self, func_idx: u32) -> Option<u32>; fn type_of_function(&self, func_idx: u32) -> Option<&Self::FuncType>; fn element_type_at(&self, at: u32) -> Option<RefType>; fn matches(&self, t1: ValType, t2: ValType) -> bool; fn check_value_type( &self, t: ValType, features: &WasmFeatures, offset: usize, ) -> Result<(), BinaryReaderError>; fn element_count(&self) -> u32; fn data_count(&self) -> Option<u32>; fn is_function_referenced(&self, idx: u32) -> bool; // Provided method fn check_heap_type( &self, heap_type: HeapType, features: &WasmFeatures, offset: usize, ) -> Result<(), BinaryReaderError> { ... }
}
Expand description

Types that qualify as Wasm validation database.

§Note

The wasmparser crate provides a builtin validation framework but allows users of this crate to also feed the parsed Wasm into their own data structure while parsing and also validate at the same time without the need of an additional parsing or validation step or copying data around.

Required Associated Types§

source

type FuncType: WasmFuncType

The function type used for validation.

Required Methods§

source

fn table_at(&self, at: u32) -> Option<TableType>

Returns the table at given index if any.

source

fn memory_at(&self, at: u32) -> Option<MemoryType>

Returns the linear memory at given index.

source

fn tag_at(&self, at: u32) -> Option<&Self::FuncType>

Returns the tag at given index.

source

fn global_at(&self, at: u32) -> Option<GlobalType>

Returns the global variable at given index.

source

fn func_type_at(&self, type_idx: u32) -> Option<&Self::FuncType>

Returns the FuncType associated with the given type index.

source

fn type_index_of_function(&self, func_idx: u32) -> Option<u32>

Returns the type index associated with the given function index. type_of_function = func_type_at(type_index_of_function)

source

fn type_of_function(&self, func_idx: u32) -> Option<&Self::FuncType>

Returns the FuncType associated with the given function index.

source

fn element_type_at(&self, at: u32) -> Option<RefType>

Returns the element type at the given index.

source

fn matches(&self, t1: ValType, t2: ValType) -> bool

Under the function references proposal, returns whether t1 <= t2. Otherwise, returns whether t1 == t2

source

fn check_value_type( &self, t: ValType, features: &WasmFeatures, offset: usize, ) -> Result<(), BinaryReaderError>

Check a value type. This requires using func_type_at to check references

source

fn element_count(&self) -> u32

Returns the number of elements.

source

fn data_count(&self) -> Option<u32>

Returns the number of bytes in the Wasm data section.

source

fn is_function_referenced(&self, idx: u32) -> bool

Returns whether the function index is referenced in the module anywhere outside of the start/function sections.

Provided Methods§

source

fn check_heap_type( &self, heap_type: HeapType, features: &WasmFeatures, offset: usize, ) -> Result<(), BinaryReaderError>

Checks that a HeapType is valid, notably its function index if one is used.

Implementations on Foreign Types§

source§

impl<T> WasmModuleResources for &T

§

type FuncType = <T as WasmModuleResources>::FuncType

source§

fn table_at(&self, at: u32) -> Option<TableType>

source§

fn memory_at(&self, at: u32) -> Option<MemoryType>

source§

fn tag_at(&self, at: u32) -> Option<&Self::FuncType>

source§

fn global_at(&self, at: u32) -> Option<GlobalType>

source§

fn func_type_at(&self, at: u32) -> Option<&Self::FuncType>

source§

fn type_index_of_function(&self, func_idx: u32) -> Option<u32>

source§

fn type_of_function(&self, func_idx: u32) -> Option<&Self::FuncType>

source§

fn check_value_type( &self, t: ValType, features: &WasmFeatures, offset: usize, ) -> Result<(), BinaryReaderError>

source§

fn element_type_at(&self, at: u32) -> Option<RefType>

source§

fn matches(&self, t1: ValType, t2: ValType) -> bool

source§

fn element_count(&self) -> u32

source§

fn data_count(&self) -> Option<u32>

source§

fn is_function_referenced(&self, idx: u32) -> bool

source§

impl<T> WasmModuleResources for Arc<T>

§

type FuncType = <T as WasmModuleResources>::FuncType

source§

fn table_at(&self, at: u32) -> Option<TableType>

source§

fn memory_at(&self, at: u32) -> Option<MemoryType>

source§

fn tag_at(&self, at: u32) -> Option<&Self::FuncType>

source§

fn global_at(&self, at: u32) -> Option<GlobalType>

source§

fn func_type_at(&self, type_idx: u32) -> Option<&Self::FuncType>

source§

fn type_index_of_function(&self, func_idx: u32) -> Option<u32>

source§

fn type_of_function(&self, func_idx: u32) -> Option<&Self::FuncType>

source§

fn check_value_type( &self, t: ValType, features: &WasmFeatures, offset: usize, ) -> Result<(), BinaryReaderError>

source§

fn element_type_at(&self, at: u32) -> Option<RefType>

source§

fn matches(&self, t1: ValType, t2: ValType) -> bool

source§

fn element_count(&self) -> u32

source§

fn data_count(&self) -> Option<u32>

source§

fn is_function_referenced(&self, idx: u32) -> bool

Implementors§