use super::*;
macro_rules! define_internal_call {
($name:ty, $fun_type:ty) => { paste! {
static mut [<ADDR_ $name>]: FnAddr = 0;
pub(super) static mut [<FN_ $name>]: *mut $fun_type = std::ptr::null_mut();
pub(super) unsafe fn [<register_ $name:lower>](addr: FnAddr) {
[<ADDR_ $name>] = addr;
[<FN_ $name>] = (&[<ADDR_ $name>] as *const FnAddr) as *mut $fun_type;
}
} }
}
define_internal_call!(EVENT_PERFORM_ASYNC, EventPerformAsync);
define_internal_call!(DS_MAP_CREATE, DsMapCreate);
define_internal_call!(DS_MAP_ADD_DOUBLE, DsMapAddDouble);
define_internal_call!(DS_MAP_ADD_STRING, DsMapAddString);