macro_rules! jstr {
($env:expr_2021, $s:expr_2021) => {
jstr!($env, $s, Default::default())
};
($env:expr_2021, $s:expr_2021, $or:expr_2021) => {
match $env.get_string(&$s) {
Ok(s) => String::from(s),
Err(_) => return $or,
}
};
}
macro_rules! host {
($class:literal, $name:literal, [$($kind:ident($arg:expr_2021)),* $(,)?]) => {
match $crate::jni::util::attached_env() {
Some(mut env) => $crate::jni::call::jcall!(&mut env, $class, $name, [$($kind($arg)),*]),
None => None,
}
};
}
macro_rules! bridge {
($name:literal, [$($kind:ident($arg:expr_2021)),* $(,)?]) => {
host!("dev/yog/NativeBridge", $name, [$($kind($arg)),*])
};
}