Struct wit_component::ComponentEncoder
source · pub struct ComponentEncoder { /* private fields */ }
Expand description
An encoder of components based on wit
interface definitions.
Implementations
sourceimpl 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 world(self, world: World, encoding: StringEncoding) -> Result<Self>
pub fn world(self, world: World, encoding: StringEncoding) -> Result<Self>
Add a “world” of interfaces (exports/imports/default) to this encoder to configure what’s being imported/exported.
The string encoding of the specified world is supplied here as well.
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.
sourcepub fn types_only(self, only: bool) -> Self
pub fn types_only(self, only: bool) -> Self
Indicates whether this encoder is only encoding types and does not
require a module
as input.