1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
macro_rules! hostcalls {
    ($(pub unsafe fn $name:ident($($arg:ident: $ty:ty,)*) -> $ret:ty;)*) => ($(
            #[wasi_common_cbindgen::wasi_common_cbindgen]
            pub unsafe fn $name($($arg: $ty,)*) -> $ret {
                let ret = match crate::hostcalls_impl::$name($($arg,)*) {
                    Ok(()) => crate::wasi::__WASI_ESUCCESS,
                    Err(e) => e.as_wasi_errno(),
                };

                ret
            }
    )*)
}