pub struct CompiledModule { /* private fields */ }
Expand description
A compiled wasm module, ready to be instantiated.
Implementations§
Source§impl CompiledModule
impl CompiledModule
Sourcepub fn new<'data>(
compiler: &Compiler,
data: &'data [u8],
profiler: &dyn ProfilingAgent,
) -> Result<Self, SetupError>
pub fn new<'data>( compiler: &Compiler, data: &'data [u8], profiler: &dyn ProfilingAgent, ) -> Result<Self, SetupError>
Compile a data buffer into a CompiledModule
, which may then be instantiated.
Sourcepub fn from_parts(
module: Module,
finished_functions: BoxedSlice<DefinedFuncIndex, *mut [VMFunctionBody]>,
trampolines: HashMap<VMSharedSignatureIndex, VMTrampoline>,
data_initializers: Box<[OwnedDataInitializer]>,
signatures: BoxedSlice<SignatureIndex, VMSharedSignatureIndex>,
dbg_jit_registration: Option<GdbJitImageRegistration>,
traps: Traps,
address_transform: ModuleAddressMap,
interrupts: Arc<VMInterrupts>,
) -> Self
pub fn from_parts( module: Module, finished_functions: BoxedSlice<DefinedFuncIndex, *mut [VMFunctionBody]>, trampolines: HashMap<VMSharedSignatureIndex, VMTrampoline>, data_initializers: Box<[OwnedDataInitializer]>, signatures: BoxedSlice<SignatureIndex, VMSharedSignatureIndex>, dbg_jit_registration: Option<GdbJitImageRegistration>, traps: Traps, address_transform: ModuleAddressMap, interrupts: Arc<VMInterrupts>, ) -> Self
Construct a CompiledModule
from component parts.
Sourcepub unsafe fn instantiate(
&self,
resolver: &mut dyn Resolver,
sig_registry: &SignatureRegistry,
mem_creator: Option<&dyn RuntimeMemoryCreator>,
host_state: Box<dyn Any>,
) -> Result<InstanceHandle, InstantiationError>
pub unsafe fn instantiate( &self, resolver: &mut dyn Resolver, sig_registry: &SignatureRegistry, mem_creator: Option<&dyn RuntimeMemoryCreator>, host_state: Box<dyn Any>, ) -> Result<InstanceHandle, InstantiationError>
Crate an Instance
from this CompiledModule
.
Note that if only one instance of this module is needed, it may be more
efficient to call the top-level instantiate
, since that avoids copying
the data initializers.
§Unsafety
See InstanceHandle::new
Sourcepub fn data_initializers(&self) -> Vec<DataInitializer<'_>>
pub fn data_initializers(&self) -> Vec<DataInitializer<'_>>
Returns data initializers to pass to InstanceHandle::initialize
Sourcepub fn module_mut(&mut self) -> &mut Arc<Module>
pub fn module_mut(&mut self) -> &mut Arc<Module>
Return a reference-counting pointer to a module.
Sourcepub fn module_ref(&self) -> &Module
pub fn module_ref(&self) -> &Module
Return a reference to a module.
Sourcepub fn finished_functions(
&self,
) -> &BoxedSlice<DefinedFuncIndex, *mut [VMFunctionBody]>
pub fn finished_functions( &self, ) -> &BoxedSlice<DefinedFuncIndex, *mut [VMFunctionBody]>
Returns the map of all finished JIT functions compiled for this module
Sourcepub fn address_transform(&self) -> &ModuleAddressMap
pub fn address_transform(&self) -> &ModuleAddressMap
Returns a map of compiled addresses back to original bytecode offsets.
Auto Trait Implementations§
impl Freeze for CompiledModule
impl RefUnwindSafe for CompiledModule
impl Send for CompiledModule
impl Sync for CompiledModule
impl Unpin for CompiledModule
impl UnwindSafe for CompiledModule
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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