2024-02-18 03:16:51 +00:00
|
|
|
#[macro_export]
|
|
|
|
macro_rules! arg_count {
|
|
|
|
($expected:expr, $given:expr) => {
|
|
|
|
if $expected != $given {
|
2024-05-10 22:54:18 +00:00
|
|
|
return Node::Error(format!("expected {} args, got {}", $expected, $given));
|
2024-02-18 03:16:51 +00:00
|
|
|
}
|
|
|
|
};
|
2024-02-18 03:36:01 +00:00
|
|
|
|
|
|
|
(modulo: $modulo:expr, $given:expr) => {
|
2024-03-09 13:10:02 +00:00
|
|
|
if $given % $modulo != 0 {
|
2024-05-10 22:54:18 +00:00
|
|
|
return Node::Error(format!(
|
|
|
|
"expected {} args, got {}",
|
2024-03-09 13:10:02 +00:00
|
|
|
($given / $modulo) * $modulo + $modulo,
|
|
|
|
$given,
|
2024-05-10 22:54:18 +00:00
|
|
|
));
|
2024-03-09 13:10:02 +00:00
|
|
|
}
|
2024-02-18 03:36:01 +00:00
|
|
|
};
|
2024-02-18 03:16:51 +00:00
|
|
|
}
|
|
|
|
|
2024-05-10 22:54:18 +00:00
|
|
|
pub(crate) use arg_count;
|