pub trait WasmModuleResources {
Show 17 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<&FuncType>; fn global_at(&self, at: u32) -> Option<GlobalType>; fn sub_type_at(&self, type_index: u32) -> Option<&SubType>; fn type_id_of_function(&self, func_idx: u32) -> Option<CoreTypeId>; fn type_index_of_function(&self, func_index: u32) -> Option<u32>; fn element_type_at(&self, at: u32) -> Option<RefType>; fn is_subtype(&self, a: ValType, b: ValType) -> bool; fn is_shared(&self, ty: RefType) -> bool; fn check_heap_type( &self, heap_type: &mut HeapType, offset: usize, ) -> Result<(), BinaryReaderError>; fn top_type(&self, heap_type: &HeapType) -> HeapType; fn element_count(&self) -> u32; fn data_count(&self) -> Option<u32>; fn is_function_referenced(&self, idx: u32) -> bool; // Provided methods fn check_value_type( &self, t: &mut ValType, features: &WasmFeatures, offset: usize, ) -> Result<(), BinaryReaderError> { ... } fn check_ref_type( &self, ref_type: &mut RefType, 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 Methods§

source

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

Returns the table at given index if any.

The table element type must be canonicalized.

source

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

Returns the linear memory at given index.

source

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

Returns the tag at given index.

The tag’s function type must be canonicalized.

source

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

Returns the global variable at given index.

The global’s value type must be canonicalized.

source

fn sub_type_at(&self, type_index: u32) -> Option<&SubType>

Returns the SubType associated with the given type index.

The sub type must be canonicalized.

source

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

Returns the type ID associated with the given function index.

source

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

Returns the type index associated with the given function index.

source

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

Returns the element type at the given index.

The RefType must be canonicalized.

source

fn is_subtype(&self, a: ValType, b: ValType) -> bool

Is a a subtype of b?

source

fn is_shared(&self, ty: RefType) -> bool

Is the given reference type shared?

While abstract heap types do carry along a shared flag, concrete heap types do not. This function resolves those concrete heap types to determine shared-ness.

source

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

Checks that a HeapType is valid and then additionally place it in its canonical form.

Similar to check_value_type but for heap types.

source

fn top_type(&self, heap_type: &HeapType) -> HeapType

Get the top type for the given heap type.

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_value_type( &self, t: &mut ValType, features: &WasmFeatures, offset: usize, ) -> Result<(), BinaryReaderError>

Check and canonicalize a value type.

This will validate that t is valid under the features provided and then additionally validate the structure of t. For example any type references that t makes are validated and canonicalized.

source

fn check_ref_type( &self, ref_type: &mut RefType, offset: usize, ) -> Result<(), BinaryReaderError>

Check and canonicalize a reference type.

Implementations on Foreign Types§

source§

impl<T> WasmModuleResources for &T

source§

impl<T> WasmModuleResources for Arc<T>

Implementors§