Struct wit_component::ComponentEncoder
source · pub struct ComponentEncoder { /* private fields */ }
Expand description
An encoder of components based on wit
interface definitions.
Implementations§
source§impl ComponentEncoder
impl ComponentEncoder
sourcepub fn module(self, module: &[u8]) -> Result<Self>
pub fn module(self, module: &[u8]) -> Result<Self>
Set the core module to encode as a component. This method will also parse any component type information stored in custom sections inside the module, and add them as the interface, imports, and exports. It will also add any producers information inside the component type information to the core module.
sourcepub fn validate(self, validate: bool) -> Self
pub fn validate(self, validate: bool) -> Self
Sets whether or not the encoder will validate its output.
sourcepub fn adapter(self, name: &str, bytes: &[u8]) -> Result<Self>
pub fn adapter(self, name: &str, bytes: &[u8]) -> Result<Self>
Specifies a new adapter which is used to translate from a historical
wasm ABI to the canonical ABI and the interface
provided.
This is primarily used to polyfill, for example,
wasi_snapshot_preview1
with a component-model using interface. The
name
provided is the module name of the adapter that is being
polyfilled, for example "wasi_snapshot_preview1"
.
The bytes
provided is a core wasm module which implements the name
interface in terms of the interface
interface. This core wasm module
is severely restricted in its shape, for example it cannot have any data
segments or element segments.
The interface
provided is the component-model-using-interface that the
wasm module specified by bytes
imports. The bytes
will then import
interface
and export functions to get imported from the module name
in the core wasm that’s being wrapped.