MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / c_async_callback_to_rust_fn

Function c_async_callback_to_rust_fn

crates/c-api/src/async.rs:163–183  ·  view source on GitHub ↗
(
    callback: wasmtime_func_async_callback_t,
    data: *mut c_void,
    finalizer: Option<extern "C" fn(*mut std::ffi::c_void)>,
)

Source from the content-addressed store, hash-verified

161}
162
163unsafe fn c_async_callback_to_rust_fn(
164 callback: wasmtime_func_async_callback_t,
165 data: *mut c_void,
166 finalizer: Option<extern "C" fn(*mut std::ffi::c_void)>,
167) -> impl for<'a> Fn(
168 WasmtimeCaller<'a>,
169 &'a [Val],
170 &'a mut [Val],
171) -> Box<dyn Future<Output = Result<()>> + Send + 'a>
172+ Send
173+ Sync
174+ 'static {
175 let foreign = crate::ForeignData { data, finalizer };
176 move |caller, params, results| {
177 let _ = &foreign; // move entire foreign into this closure
178 let data = CallbackDataPtr { ptr: foreign.data };
179 Box::new(invoke_c_async_callback(
180 callback, data, caller, params, results,
181 ))
182 }
183}
184
185#[repr(transparent)]
186pub struct wasmtime_call_future_t<'a> {

Callers 1

Calls 2

invoke_c_async_callbackFunction · 0.85
newFunction · 0.50

Tested by

no test coverage detected