pub struct DummyEnvironment {
pub info: DummyModuleInfo,
pub trans: FuncTranslator,
pub func_bytecode_sizes: Vec<usize>,
pub debug_info: bool,
pub module_name: Option<String>,
/* private fields */
}Expand description
This ModuleEnvironment implementation is a “naïve” one, doing essentially nothing and
emitting placeholders when forced to. Don’t try to execute code translated for this
environment, essentially here for translation debug purposes.
Fields§
§info: DummyModuleInfoModule information.
trans: FuncTranslatorFunction translation.
func_bytecode_sizes: Vec<usize>Vector of wasm bytecode size for each function.
debug_info: boolInstructs to collect debug data during translation.
module_name: Option<String>Name of the module from the wasm file.
Implementations§
Source§impl DummyEnvironment
impl DummyEnvironment
Sourcepub fn new(config: TargetFrontendConfig, debug_info: bool) -> Self
pub fn new(config: TargetFrontendConfig, debug_info: bool) -> Self
Creates a new DummyEnvironment instance.
Sourcepub fn func_env(&self) -> DummyFuncEnvironment<'_>
pub fn func_env(&self) -> DummyFuncEnvironment<'_>
Return a DummyFuncEnvironment for translating functions within this
DummyEnvironment.
Sourcepub fn get_func_type(&self, func_index: FuncIndex) -> TypeIndex
pub fn get_func_type(&self, func_index: FuncIndex) -> TypeIndex
Get the type for the function at the given index.
Sourcepub fn get_num_func_imports(&self) -> usize
pub fn get_num_func_imports(&self) -> usize
Return the number of imported functions within this DummyEnvironment.
Sourcepub fn get_func_name(&self, func_index: FuncIndex) -> Option<&str>
pub fn get_func_name(&self, func_index: FuncIndex) -> Option<&str>
Return the name of the function, if a name for the function with the corresponding index exists.
Sourcepub fn test_expected_reachability(&mut self, reachability: Vec<(bool, bool)>)
pub fn test_expected_reachability(&mut self, reachability: Vec<(bool, bool)>)
Test reachability bits before and after every opcode during translation, as provided by the
FuncTranslationState. This is generally used only for unit tests. This is applied to
every function in the module (so is likely only useful for test modules with one function).
Trait Implementations§
Source§impl<'data> ModuleEnvironment<'data> for DummyEnvironment
impl<'data> ModuleEnvironment<'data> for DummyEnvironment
Source§fn declare_type_func(&mut self, wasm: WasmFuncType) -> WasmResult<()>
fn declare_type_func(&mut self, wasm: WasmFuncType) -> WasmResult<()>
Source§fn declare_func_import(
&mut self,
index: TypeIndex,
module: &'data str,
field: &'data str,
) -> WasmResult<()>
fn declare_func_import( &mut self, index: TypeIndex, module: &'data str, field: &'data str, ) -> WasmResult<()>
Source§fn declare_func_type(&mut self, index: TypeIndex) -> WasmResult<()>
fn declare_func_type(&mut self, index: TypeIndex) -> WasmResult<()>
Source§fn declare_global(&mut self, global: Global) -> WasmResult<()>
fn declare_global(&mut self, global: Global) -> WasmResult<()>
Source§fn declare_global_import(
&mut self,
global: Global,
module: &'data str,
field: &'data str,
) -> WasmResult<()>
fn declare_global_import( &mut self, global: Global, module: &'data str, field: &'data str, ) -> WasmResult<()>
Source§fn declare_table(&mut self, table: Table) -> WasmResult<()>
fn declare_table(&mut self, table: Table) -> WasmResult<()>
Source§fn declare_table_import(
&mut self,
table: Table,
module: &'data str,
field: &'data str,
) -> WasmResult<()>
fn declare_table_import( &mut self, table: Table, module: &'data str, field: &'data str, ) -> WasmResult<()>
Source§fn declare_table_elements(
&mut self,
_table_index: TableIndex,
_base: Option<GlobalIndex>,
_offset: u32,
_elements: Box<[FuncIndex]>,
) -> WasmResult<()>
fn declare_table_elements( &mut self, _table_index: TableIndex, _base: Option<GlobalIndex>, _offset: u32, _elements: Box<[FuncIndex]>, ) -> WasmResult<()>
Source§fn declare_passive_element(
&mut self,
_elem_index: ElemIndex,
_segments: Box<[FuncIndex]>,
) -> WasmResult<()>
fn declare_passive_element( &mut self, _elem_index: ElemIndex, _segments: Box<[FuncIndex]>, ) -> WasmResult<()>
Source§fn declare_passive_data(
&mut self,
_elem_index: DataIndex,
_segments: &'data [u8],
) -> WasmResult<()>
fn declare_passive_data( &mut self, _elem_index: DataIndex, _segments: &'data [u8], ) -> WasmResult<()>
Source§fn declare_memory(&mut self, memory: Memory) -> WasmResult<()>
fn declare_memory(&mut self, memory: Memory) -> WasmResult<()>
Source§fn declare_memory_import(
&mut self,
memory: Memory,
module: &'data str,
field: &'data str,
) -> WasmResult<()>
fn declare_memory_import( &mut self, memory: Memory, module: &'data str, field: &'data str, ) -> WasmResult<()>
Source§fn declare_data_initialization(
&mut self,
_memory_index: MemoryIndex,
_base: Option<GlobalIndex>,
_offset: u64,
_data: &'data [u8],
) -> WasmResult<()>
fn declare_data_initialization( &mut self, _memory_index: MemoryIndex, _base: Option<GlobalIndex>, _offset: u64, _data: &'data [u8], ) -> WasmResult<()>
Source§fn declare_func_export(
&mut self,
func_index: FuncIndex,
name: &'data str,
) -> WasmResult<()>
fn declare_func_export( &mut self, func_index: FuncIndex, name: &'data str, ) -> WasmResult<()>
Source§fn declare_table_export(
&mut self,
table_index: TableIndex,
name: &'data str,
) -> WasmResult<()>
fn declare_table_export( &mut self, table_index: TableIndex, name: &'data str, ) -> WasmResult<()>
Source§fn declare_memory_export(
&mut self,
memory_index: MemoryIndex,
name: &'data str,
) -> WasmResult<()>
fn declare_memory_export( &mut self, memory_index: MemoryIndex, name: &'data str, ) -> WasmResult<()>
Source§fn declare_global_export(
&mut self,
global_index: GlobalIndex,
name: &'data str,
) -> WasmResult<()>
fn declare_global_export( &mut self, global_index: GlobalIndex, name: &'data str, ) -> WasmResult<()>
Source§fn declare_start_func(&mut self, func_index: FuncIndex) -> WasmResult<()>
fn declare_start_func(&mut self, func_index: FuncIndex) -> WasmResult<()>
Source§fn define_function_body(
&mut self,
validator: FuncValidator<ValidatorResources>,
body: FunctionBody<'data>,
) -> WasmResult<()>
fn define_function_body( &mut self, validator: FuncValidator<ValidatorResources>, body: FunctionBody<'data>, ) -> WasmResult<()>
Source§fn declare_module_name(&mut self, name: &'data str)
fn declare_module_name(&mut self, name: &'data str)
Source§fn declare_func_name(&mut self, func_index: FuncIndex, name: &'data str)
fn declare_func_name(&mut self, func_index: FuncIndex, name: &'data str)
Source§fn wasm_features(&self) -> WasmFeatures
fn wasm_features(&self) -> WasmFeatures
Source§fn reserve_types(&mut self, _num: u32) -> WasmResult<()>
fn reserve_types(&mut self, _num: u32) -> WasmResult<()>
Source§fn type_to_signature(&self, index: TypeIndex) -> WasmResult<SignatureIndex>
fn type_to_signature(&self, index: TypeIndex) -> WasmResult<SignatureIndex>
Source§fn reserve_imports(&mut self, _num: u32) -> WasmResult<()>
fn reserve_imports(&mut self, _num: u32) -> WasmResult<()>
Source§fn declare_tag_import(
&mut self,
tag: Tag,
module: &'data str,
field: &'data str,
) -> WasmResult<()>
fn declare_tag_import( &mut self, tag: Tag, module: &'data str, field: &'data str, ) -> WasmResult<()>
Source§fn finish_imports(&mut self) -> WasmResult<()>
fn finish_imports(&mut self) -> WasmResult<()>
Source§fn reserve_func_types(&mut self, _num: u32) -> WasmResult<()>
fn reserve_func_types(&mut self, _num: u32) -> WasmResult<()>
Source§fn reserve_tables(&mut self, _num: u32) -> WasmResult<()>
fn reserve_tables(&mut self, _num: u32) -> WasmResult<()>
Source§fn reserve_memories(&mut self, _num: u32) -> WasmResult<()>
fn reserve_memories(&mut self, _num: u32) -> WasmResult<()>
Source§fn declare_tag(&mut self, tag: Tag) -> WasmResult<()>
fn declare_tag(&mut self, tag: Tag) -> WasmResult<()>
Source§fn reserve_globals(&mut self, _num: u32) -> WasmResult<()>
fn reserve_globals(&mut self, _num: u32) -> WasmResult<()>
Source§fn reserve_exports(&mut self, _num: u32) -> WasmResult<()>
fn reserve_exports(&mut self, _num: u32) -> WasmResult<()>
Source§fn declare_tag_export(
&mut self,
tag_index: TagIndex,
name: &'data str,
) -> WasmResult<()>
fn declare_tag_export( &mut self, tag_index: TagIndex, name: &'data str, ) -> WasmResult<()>
Source§fn finish_exports(&mut self) -> WasmResult<()>
fn finish_exports(&mut self) -> WasmResult<()>
Source§fn reserve_table_elements(&mut self, _num: u32) -> WasmResult<()>
fn reserve_table_elements(&mut self, _num: u32) -> WasmResult<()>
Source§fn declare_elements(&mut self, elements: Box<[FuncIndex]>) -> WasmResult<()>
fn declare_elements(&mut self, elements: Box<[FuncIndex]>) -> WasmResult<()>
Source§fn reserve_passive_data(&mut self, count: u32) -> WasmResult<()>
fn reserve_passive_data(&mut self, count: u32) -> WasmResult<()>
Source§fn reserve_function_bodies(&mut self, bodies: u32, code_section_offset: u64)
fn reserve_function_bodies(&mut self, bodies: u32, code_section_offset: u64)
Source§fn reserve_data_initializers(&mut self, _num: u32) -> WasmResult<()>
fn reserve_data_initializers(&mut self, _num: u32) -> WasmResult<()>
Source§fn declare_local_name(
&mut self,
_func_index: FuncIndex,
_local_index: u32,
_name: &'data str,
)
fn declare_local_name( &mut self, _func_index: FuncIndex, _local_index: u32, _name: &'data str, )
Source§fn custom_section(
&mut self,
_name: &'data str,
_data: &'data [u8],
) -> WasmResult<()>
fn custom_section( &mut self, _name: &'data str, _data: &'data [u8], ) -> WasmResult<()>
Source§impl TargetEnvironment for DummyEnvironment
impl TargetEnvironment for DummyEnvironment
Source§fn target_config(&self) -> TargetFrontendConfig
fn target_config(&self) -> TargetFrontendConfig
Source§fn heap_access_spectre_mitigation(&self) -> bool
fn heap_access_spectre_mitigation(&self) -> bool
Source§fn pointer_type(&self) -> Type
fn pointer_type(&self) -> Type
Source§fn pointer_bytes(&self) -> u8
fn pointer_bytes(&self) -> u8
Auto Trait Implementations§
impl Freeze for DummyEnvironment
impl RefUnwindSafe for DummyEnvironment
impl Send for DummyEnvironment
impl Sync for DummyEnvironment
impl Unpin for DummyEnvironment
impl UnwindSafe for DummyEnvironment
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more