#[macro_export]
macro_rules! timer {
($delay:expr, $func:path $(, $($args:tt)*)? ) => {{
let label = concat!(module_path!(), "::", stringify!($func));
$crate::__internal::core::api::timer::TimerApi::set_lifecycle_timer(
$delay,
label,
$func($($($args)*)?),
)
}};
}
#[macro_export]
macro_rules! timer_guarded {
($slot:path, $delay:expr, $func:path $(, $($args:tt)*)? ) => {{
let label = concat!(module_path!(), "::", stringify!($func));
$crate::__internal::core::api::timer::TimerApi::set_guarded(
&$slot,
$delay,
label,
$func($($($args)*)?),
)
}};
}
#[macro_export]
macro_rules! timer_interval {
($interval:expr, $func:path $(, $($args:tt)*)? ) => {{
let label = concat!(module_path!(), "::", stringify!($func));
$crate::__internal::core::api::timer::TimerApi::set_interval(
$interval,
label,
move || $func($($($args)*)?),
)
}};
}
#[macro_export]
macro_rules! timer_interval_guarded {
(
$slot:path,
$init_delay:expr,
$init_func:path $(, $($init_args:tt)*)?
;
$interval:expr,
$tick_func:path $(, $($tick_args:tt)*)?
) => {{
let init_label = concat!(module_path!(), "::", stringify!($init_func));
let tick_label = concat!(module_path!(), "::", stringify!($tick_func));
$crate::__internal::core::api::timer::TimerApi::set_guarded_interval(
&$slot,
$init_delay,
init_label,
move || $init_func($($($init_args)*)?),
$interval,
tick_label,
move || $tick_func($($($tick_args)*)?),
)
}};
}