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§
sourcetype FuncType: WasmFuncType
type FuncType: WasmFuncType
The function type used for validation.
Required Methods§
sourcefn memory_at(&self, at: u32) -> Option<MemoryType>
fn memory_at(&self, at: u32) -> Option<MemoryType>
Returns the linear memory at given index.
sourcefn global_at(&self, at: u32) -> Option<GlobalType>
fn global_at(&self, at: u32) -> Option<GlobalType>
Returns the global variable at given index.
sourcefn func_type_at(&self, type_idx: u32) -> Option<&Self::FuncType>
fn func_type_at(&self, type_idx: u32) -> Option<&Self::FuncType>
Returns the FuncType
associated with the given type index.
sourcefn type_index_of_function(&self, func_idx: u32) -> Option<u32>
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)
sourcefn type_of_function(&self, func_idx: u32) -> Option<&Self::FuncType>
fn type_of_function(&self, func_idx: u32) -> Option<&Self::FuncType>
Returns the FuncType
associated with the given function index.
sourcefn element_type_at(&self, at: u32) -> Option<RefType>
fn element_type_at(&self, at: u32) -> Option<RefType>
Returns the element type at the given index.
sourcefn matches(&self, t1: ValType, t2: ValType) -> bool
fn matches(&self, t1: ValType, t2: ValType) -> bool
Under the function references proposal, returns whether t1 <= t2. Otherwise, returns whether t1 == t2
sourcefn check_value_type(
&self,
t: ValType,
features: &WasmFeatures,
offset: usize
) -> Result<(), BinaryReaderError>
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
sourcefn element_count(&self) -> u32
fn element_count(&self) -> u32
Returns the number of elements.
sourcefn data_count(&self) -> Option<u32>
fn data_count(&self) -> Option<u32>
Returns the number of bytes in the Wasm data section.
sourcefn is_function_referenced(&self, idx: u32) -> bool
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§
sourcefn check_heap_type(
&self,
heap_type: HeapType,
features: &WasmFeatures,
offset: usize
) -> Result<(), BinaryReaderError>
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.