pub trait ModuleRuntimeInfo: Send + Sync + 'static {
    fn module(&self) -> &Arc<Module>;
    fn function(&self, index: DefinedFuncIndex) -> *mut VMFunctionBody;
    fn memory_image(
        &self,
        memory: DefinedMemoryIndex
    ) -> Result<Option<&Arc<MemoryImage>>>; fn unique_id(&self) -> Option<CompiledModuleId>; fn wasm_data(&self) -> &[u8] ; fn signature_ids(&self) -> &[VMSharedSignatureIndex]; fn offsets(&self) -> &VMOffsets<HostPtr>; }
Expand description

Functionality required by this crate for a particular module. This is chiefly needed for lazy initialization of various bits of instance state.

When an instance is created, it holds an Arc<dyn ModuleRuntimeInfo> so that it can get to signatures, metadata on functions, memory and funcref-table images, etc. All of these things are ordinarily known by the higher-level layers of Wasmtime. Specifically, the main implementation of this trait is provided by wasmtime::module::ModuleInner. Since the runtime crate sits at the bottom of the dependence DAG though, we don’t know or care about that; we just need some implementor of this trait for each allocation request.

Required Methods§

The underlying Module.

Returns the address, in memory, that the function index resides at.

Returns the MemoryImage structure used for copy-on-write initialization of the memory, if it’s applicable.

A unique ID for this particular module. This can be used to allow for fastpaths to optimize a “re-instantiate the same module again” case.

A slice pointing to all data that is referenced by this instance.

Returns an array, indexed by SignatureIndex of all VMSharedSignatureIndex entries corresponding to the SignatureIndex.

Offset information for the current host.

Implementors§