pub struct WasmCallbackOwner {
handle: u32,
free_fn: unsafe extern "C" fn(u32),
}
impl WasmCallbackOwner {
#[inline]
pub fn new(handle: u32, free_fn: unsafe extern "C" fn(u32)) -> Self {
Self { handle, free_fn }
}
#[inline]
pub fn handle(&self) -> u32 {
self.handle
}
}
impl Drop for WasmCallbackOwner {
fn drop(&mut self) {
unsafe { (self.free_fn)(self.handle) }
}
}
unsafe impl Send for WasmCallbackOwner {}
unsafe impl Sync for WasmCallbackOwner {}
#[unsafe(no_mangle)]
pub extern "C" fn boltffi_create_callback_handle(js_handle: u32) -> u32 {
js_handle
}