macro_rules! wasi_try {
($expr:expr) => {{
let res: Result<_, crate::syscalls::types::wasi::Errno> = $expr;
match res {
Ok(val) => {
val
}
Err(err) => {
return err;
}
}
}};
}
macro_rules! wasi_try_ok {
($expr:expr) => {{
let res: Result<_, crate::syscalls::types::wasi::Errno> = $expr;
match res {
Ok(val) => {
val
}
Err(err) => {
return Ok(err);
}
}
}};
}
macro_rules! wasi_try_ok_ok {
($expr:expr) => {{
let res: Result<_, crate::syscalls::types::wasi::Errno> = $expr;
match res {
Ok(val) => val,
Err(err) => {
return Ok(Err(err));
}
}
}};
}
macro_rules! wasi_try_mem {
($expr:expr) => {{
wasi_try!($expr.map_err($crate::mem_error_to_wasi))
}};
}
macro_rules! wasi_try_mem_ok {
($expr:expr) => {{
wasi_try_ok!($expr.map_err($crate::mem_error_to_wasi))
}};
($expr:expr, $thread:expr) => {{
wasi_try_ok!($expr.map_err($crate::mem_error_to_wasi), $thread)
}};
}
macro_rules! wasi_try_mem_ok_ok {
($expr:expr) => {{
wasi_try_ok_ok!($expr.map_err($crate::mem_error_to_wasi))
}};
($expr:expr, $thread:expr) => {{
wasi_try_ok_ok!($expr.map_err($crate::mem_error_to_wasi), $thread)
}};
}
macro_rules! get_input_str {
($memory:expr, $data:expr, $len:expr) => {{
wasi_try_mem!($data.read_utf8_string($memory, $len))
}};
}
macro_rules! get_input_str_ok {
($memory:expr, $data:expr, $len:expr) => {{
wasi_try_mem_ok!($data.read_utf8_string($memory, $len))
}};
}
#[allow(unused_macros)]
macro_rules! get_input_str_bus {
($memory:expr, $data:expr, $len:expr) => {{
wasi_try_mem_bus!($data.read_utf8_string($memory, $len))
}};
}
#[allow(unused_macros)]
macro_rules! get_input_str_bus_ok {
($memory:expr, $data:expr, $len:expr) => {{
wasi_try_mem_bus_ok!($data.read_utf8_string($memory, $len))
}};
}
macro_rules! wasi_dl_err {
($err:expr, $memory:ident, $err_buf:ident, $err_buf_len:ident) => {
wasi_try_mem_ok!(write_dl_error(
$err,
&$memory,
$err_buf,
$err_buf_len.into()
));
return Ok(Errno::Unknown);
};
}
macro_rules! wasi_try_dl {
($expr:expr, $fmt:tt, $memory:ident, $err_buf:ident, $err_buf_len:ident) => {
match $expr {
Ok(o) => o,
Err(err) => {
let err = format!($fmt, err);
wasi_dl_err!(&err, $memory, $err_buf, $err_buf_len);
}
}
};
}