pub trait ImportedFunctionInterface {
type HostParameters: WitStore;
type HostResults: WitLoad;
type GuestParameters: FlatLayout;
type GuestResults: FlatLayout;
// Required methods
fn lower_parameters<Instance>(
parameters: Self::HostParameters,
memory: &mut Memory<'_, Instance>,
) -> Result<Self::GuestParameters, RuntimeError>
where Instance: InstanceWithMemory,
<Instance::Runtime as Runtime>::Memory: RuntimeMemory<Instance>;
fn lift_results<Instance>(
results: Self::GuestResults,
memory: &Memory<'_, Instance>,
) -> Result<Self::HostResults, RuntimeError>
where Instance: InstanceWithMemory,
<Instance::Runtime as Runtime>::Memory: RuntimeMemory<Instance>;
}
Expand description
Representation of an imported function’s interface.
Implemented for a tuple pair of the host parameters type and the host results type, and then allows converting to the guest function’s signature.
Required Associated Types§
Sourcetype HostParameters: WitStore
type HostParameters: WitStore
The type representing the host-side parameters.
Sourcetype HostResults: WitLoad
type HostResults: WitLoad
The type representing the host-side results.
Sourcetype GuestParameters: FlatLayout
type GuestParameters: FlatLayout
The flat layout representing the guest-side parameters.
Sourcetype GuestResults: FlatLayout
type GuestResults: FlatLayout
The flat layout representing the guest-side results.
Required Methods§
Sourcefn lower_parameters<Instance>(
parameters: Self::HostParameters,
memory: &mut Memory<'_, Instance>,
) -> Result<Self::GuestParameters, RuntimeError>where
Instance: InstanceWithMemory,
<Instance::Runtime as Runtime>::Memory: RuntimeMemory<Instance>,
fn lower_parameters<Instance>(
parameters: Self::HostParameters,
memory: &mut Memory<'_, Instance>,
) -> Result<Self::GuestParameters, RuntimeError>where
Instance: InstanceWithMemory,
<Instance::Runtime as Runtime>::Memory: RuntimeMemory<Instance>,
Converts the host-side parameters into the guest-side parameters.
Sourcefn lift_results<Instance>(
results: Self::GuestResults,
memory: &Memory<'_, Instance>,
) -> Result<Self::HostResults, RuntimeError>where
Instance: InstanceWithMemory,
<Instance::Runtime as Runtime>::Memory: RuntimeMemory<Instance>,
fn lift_results<Instance>(
results: Self::GuestResults,
memory: &Memory<'_, Instance>,
) -> Result<Self::HostResults, RuntimeError>where
Instance: InstanceWithMemory,
<Instance::Runtime as Runtime>::Memory: RuntimeMemory<Instance>,
Converts the guest-side results into the host-side results.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.