INNER CODE UNIT · Rust
free_guest_memory
lunatic-solutions/lunatic · crates/lunatic-common-api/src/lib.rs:40
pub fn free_guest_memory<'a, T: Send>(
caller: &'a mut Caller<T>,
ptr: u32,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'a>> {
Box::pin(async move {
let mut results = [];
let result = caller
.get_export(FREEING_FUNCTION_NAME)
.or_trap(format!("no export named {FREEING_FUNCTION_NAME} found"))?
.into_func()
.or_trap("cannot turn export into func")?
.call_async(caller, &[Val::I32(ptr as i32)], &mut results)
.await;
result.or_trap(format!("failed to call {FREEING_FUNCTION_NAME}"))?;
Ok(())
})
}