pub struct ModuleEnvironment<'data> {
pub module: ModuleInfo,
pub function_body_inputs: PrimaryMap<LocalFunctionIndex, FunctionBodyData<'data>>,
pub data_initializers: Vec<DataInitializer<'data>>,
pub module_translation_state: Option<ModuleTranslationState>,
}Expand description
The result of translating via ModuleEnvironment. Function bodies are not
yet translated, and data initializers have not yet been copied out of the
original buffer.
The function bodies will be translated by a specific compiler backend.
Fields§
§module: ModuleInfoModuleInfo information.
function_body_inputs: PrimaryMap<LocalFunctionIndex, FunctionBodyData<'data>>References to the function bodies.
data_initializers: Vec<DataInitializer<'data>>References to the data initializers.
module_translation_state: Option<ModuleTranslationState>The decoded Wasm types for the module.
Implementations§
Source§impl<'data> ModuleEnvironment<'data>
impl<'data> ModuleEnvironment<'data>
Sourcepub fn translate(self, data: &'data [u8]) -> WasmResult<Self>
pub fn translate(self, data: &'data [u8]) -> WasmResult<Self>
Translate a wasm module using this environment. This consumes the
ModuleEnvironment and produces a ModuleInfoTranslation.
pub(crate) fn declare_export( &mut self, export: ExportIndex, name: &str, ) -> WasmResult<()>
pub(crate) fn declare_import( &mut self, import: ImportIndex, module: &str, field: &str, ) -> WasmResult<()>
pub(crate) fn reserve_signatures(&mut self, num: u32) -> WasmResult<()>
pub(crate) fn declare_signature(&mut self, sig: FunctionType) -> WasmResult<()>
pub(crate) fn declare_func_import( &mut self, sig_index: SignatureIndex, module: &str, field: &str, ) -> WasmResult<()>
pub(crate) fn declare_tag_import( &mut self, t: TagType, module_name: &str, field_name: &str, ) -> WasmResult<()>
pub(crate) fn declare_table_import( &mut self, table: TableType, module: &str, field: &str, ) -> WasmResult<()>
pub(crate) fn declare_memory_import( &mut self, memory: MemoryType, module: &str, field: &str, ) -> WasmResult<()>
pub(crate) fn declare_global_import( &mut self, global: GlobalType, module: &str, field: &str, ) -> WasmResult<()>
pub(crate) fn finish_imports(&mut self) -> WasmResult<()>
pub(crate) fn reserve_func_types(&mut self, num: u32) -> WasmResult<()>
pub(crate) fn declare_func_type( &mut self, sig_index: SignatureIndex, ) -> WasmResult<()>
pub(crate) fn reserve_tables(&mut self, num: u32) -> WasmResult<()>
pub(crate) fn declare_table(&mut self, table: TableType) -> WasmResult<()>
pub(crate) fn reserve_memories(&mut self, num: u32) -> WasmResult<()>
pub(crate) fn declare_memory(&mut self, memory: MemoryType) -> WasmResult<()>
pub(crate) fn declare_tag(&mut self, tag: SignatureIndex) -> WasmResult<()>
pub(crate) fn reserve_globals(&mut self, num: u32) -> WasmResult<()>
pub(crate) fn declare_global( &mut self, global: GlobalType, initializer: GlobalInit, ) -> WasmResult<()>
pub(crate) fn reserve_exports(&mut self, num: u32) -> WasmResult<()>
pub(crate) fn declare_func_export( &mut self, func_index: FunctionIndex, name: &str, ) -> WasmResult<()>
pub(crate) fn declare_table_export( &mut self, table_index: TableIndex, name: &str, ) -> WasmResult<()>
pub(crate) fn declare_memory_export( &mut self, memory_index: MemoryIndex, name: &str, ) -> WasmResult<()>
pub(crate) fn declare_tag_export( &mut self, tag_index: TagIndex, name: &str, ) -> WasmResult<()>
pub(crate) fn declare_global_export( &mut self, global_index: GlobalIndex, name: &str, ) -> WasmResult<()>
pub(crate) fn declare_start_function( &mut self, func_index: FunctionIndex, ) -> WasmResult<()>
pub(crate) fn reserve_table_initializers(&mut self, num: u32) -> WasmResult<()>
pub(crate) fn declare_table_initializers( &mut self, table_index: TableIndex, base: Option<GlobalIndex>, offset: usize, elements: Box<[FunctionIndex]>, ) -> WasmResult<()>
pub(crate) fn declare_passive_element( &mut self, elem_index: ElemIndex, segments: Box<[FunctionIndex]>, ) -> WasmResult<()>
pub(crate) fn define_function_body( &mut self, _module_translation_state: &ModuleTranslationState, body_bytes: &'data [u8], body_offset: usize, ) -> WasmResult<()>
pub(crate) fn reserve_data_initializers(&mut self, num: u32) -> WasmResult<()>
pub(crate) fn declare_data_initialization( &mut self, memory_index: MemoryIndex, base: Option<GlobalIndex>, offset: usize, data: &'data [u8], ) -> WasmResult<()>
pub(crate) fn reserve_passive_data(&mut self, count: u32) -> WasmResult<()>
pub(crate) fn declare_passive_data( &mut self, data_index: DataIndex, data: &'data [u8], ) -> WasmResult<()>
pub(crate) fn declare_module_name(&mut self, name: &'data str) -> WasmResult<()>
pub(crate) fn declare_function_name( &mut self, func_index: FunctionIndex, name: &'data str, ) -> WasmResult<()>
Sourcepub(crate) fn reserve_imports(&mut self, _num: u32) -> WasmResult<()>
pub(crate) fn reserve_imports(&mut self, _num: u32) -> WasmResult<()>
Provides the number of imports up front. By default this does nothing, but implementations can use this to preallocate memory if desired.
Sourcepub(crate) fn finish_exports(&mut self) -> WasmResult<()>
pub(crate) fn finish_exports(&mut self) -> WasmResult<()>
Notifies the implementation that all exports have been declared.
Sourcepub(crate) fn custom_section(
&mut self,
name: &'data str,
data: &'data [u8],
) -> WasmResult<()>
pub(crate) fn custom_section( &mut self, name: &'data str, data: &'data [u8], ) -> WasmResult<()>
Indicates that a custom section has been found in the wasm file
Auto Trait Implementations§
impl<'data> Freeze for ModuleEnvironment<'data>
impl<'data> RefUnwindSafe for ModuleEnvironment<'data>
impl<'data> Send for ModuleEnvironment<'data>
impl<'data> Sync for ModuleEnvironment<'data>
impl<'data> Unpin for ModuleEnvironment<'data>
impl<'data> UnwindSafe for ModuleEnvironment<'data>
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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