Struct wasmedge_sdk::ImportObjectBuilder
source · pub struct ImportObjectBuilder { /* private fields */ }
Expand description
Creates a normal or wasi import object.
Example
This example shows how to create a normal import object that contains a host function, a global variable, a memory and a table. The import object is named “extern”.
Implementations§
source§impl ImportObjectBuilder
impl ImportObjectBuilder
sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new ImportObjectBuilder.
sourcepub fn with_func<Args, Rets, D>(
self,
name: impl AsRef<str>,
real_func: impl Fn(CallingFrame, Vec<WasmValue>, *mut c_void) -> Result<Vec<WasmValue>, HostFuncError> + Send + Sync + 'static,
data: Option<Box<D>>
) -> WasmEdgeResult<Self>where
Args: WasmValTypeList,
Rets: WasmValTypeList,
pub fn with_func<Args, Rets, D>( self, name: impl AsRef<str>, real_func: impl Fn(CallingFrame, Vec<WasmValue>, *mut c_void) -> Result<Vec<WasmValue>, HostFuncError> + Send + Sync + 'static, data: Option<Box<D>> ) -> WasmEdgeResult<Self>where Args: WasmValTypeList, Rets: WasmValTypeList,
Adds a host function to the ImportObject to create.
N.B. that this function can be used in thread-safe scenarios.
Arguments
-
name
- The exported name of the host function to add. -
real_func
- The native function. -
data
- The host context data used in this function.
error
If fail to create or add the host function, then an error is returned.
sourcepub fn with_func_by_type<D>(
self,
name: impl AsRef<str>,
ty: FuncType,
real_func: impl Fn(CallingFrame, Vec<WasmValue>, *mut c_void) -> Result<Vec<WasmValue>, HostFuncError> + Send + Sync + 'static,
data: Option<Box<D>>
) -> WasmEdgeResult<Self>
pub fn with_func_by_type<D>( self, name: impl AsRef<str>, ty: FuncType, real_func: impl Fn(CallingFrame, Vec<WasmValue>, *mut c_void) -> Result<Vec<WasmValue>, HostFuncError> + Send + Sync + 'static, data: Option<Box<D>> ) -> WasmEdgeResult<Self>
Adds a host function to the ImportObject to create.
N.B. that this function can be used in thread-safe scenarios.
Arguments
-
name
- The exported name of the host function to add. -
ty
- The function type. -
real_func
- The native function. -
data
- The host context data used in this function.
error
If fail to create or add the host function, then an error is returned.
sourcepub fn with_async_func<Args, Rets, D>(
self,
name: impl AsRef<str>,
real_func: impl Fn(CallingFrame, Vec<WasmValue>, *mut c_void) -> Box<dyn Future<Output = Result<Vec<WasmValue>, HostFuncError>> + Send> + Send + Sync + 'static,
data: Option<Box<D>>
) -> WasmEdgeResult<Self>where
Args: WasmValTypeList,
Rets: WasmValTypeList,
D: Send + Sync,
Available on crate feature async
and Linux only.
pub fn with_async_func<Args, Rets, D>( self, name: impl AsRef<str>, real_func: impl Fn(CallingFrame, Vec<WasmValue>, *mut c_void) -> Box<dyn Future<Output = Result<Vec<WasmValue>, HostFuncError>> + Send> + Send + Sync + 'static, data: Option<Box<D>> ) -> WasmEdgeResult<Self>where Args: WasmValTypeList, Rets: WasmValTypeList, D: Send + Sync,
async
and Linux only.Adds an async host function to the ImportObject to create.
N.B. that this function can be used in thread-safe scenarios.
Arguments
-
name
- The exported name of the host function to add. -
real_func
- The native function. -
data
- The host context data used in this function.
error
If fail to create or add the host function, then an error is returned.
sourcepub fn with_global(self, name: impl AsRef<str>, global: Global) -> Self
pub fn with_global(self, name: impl AsRef<str>, global: Global) -> Self
Adds a global to the ImportObject to create.
Arguments
-
name
- The exported name of the global to add. -
global
- The wasm global instance to add.
sourcepub fn with_memory(self, name: impl AsRef<str>, memory: Memory) -> Self
pub fn with_memory(self, name: impl AsRef<str>, memory: Memory) -> Self
Adds a memory to the ImportObject to create.
Arguments
-
name
- The exported name of the memory to add. -
memory
- The wasm memory instance to add.
sourcepub fn with_table(self, name: impl AsRef<str>, table: Table) -> Self
pub fn with_table(self, name: impl AsRef<str>, table: Table) -> Self
Adds a table to the ImportObject to create.
Arguments
-
name
- The exported name of the table to add. -
table
- The wasm table instance to add.
sourcepub fn build<T>(
self,
name: impl AsRef<str>,
host_data: Option<Box<T>>
) -> WasmEdgeResult<ImportObject<T>>where
T: ?Sized + Send + Sync + Clone,
pub fn build<T>( self, name: impl AsRef<str>, host_data: Option<Box<T>> ) -> WasmEdgeResult<ImportObject<T>>where T: ?Sized + Send + Sync + Clone,
Creates a new ImportObject.
Argument
-
name
- The name of the ImportObject to create. -
host_data
- The host context data to be stored in the module instance.
Error
If fail to create the ImportObject, then an error is returned.