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.
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.