pub mod call;
#[macro_export]
macro_rules! byond {
( $n:ident ; $c:block ) => {
#[no_mangle]
pub unsafe extern "C" fn $n (__n: i32, __v: *const *const std::os::raw::c_char) -> *const std::os::raw::c_char {
$crate::call::return_to_byond((|| $c)()).unwrap()
}
};
( $n:ident : $( $p:ident ),* ; $c:block ) => {
#[no_mangle]
pub unsafe extern "C" fn $n (__n: i32, __v: *const *const std::os::raw::c_char) -> *const std::os::raw::c_char {
let __args = $crate::call::from_byond_args(__n, __v);
let mut __count = 0;
$(
let $p: &str = &__args[__count];
__count += 1;
)*
let ret = (|| $c)();
$crate::call::return_to_byond(ret).unwrap()
}
};
}