pub struct ComponentEncoder { /* private fields */ }
Expand description

An encoder of components based on wit interface definitions.

Implementations§

source§

impl ComponentEncoder

source

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.

source

pub fn validate(self, validate: bool) -> Self

Sets whether or not the encoder will validate its output.

source

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.

source

pub fn encode(&self) -> Result<Vec<u8>>

Encode the component and return the bytes.

Trait Implementations§

source§

impl Default for ComponentEncoder

source§

fn default() -> ComponentEncoder

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere
    T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere
    T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere
    T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere
    U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere
    U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere
    U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.