#[macro_export]
macro_rules! cmd {
($id:literal, $label:literal, [$($m:literal),* $(,)?], $sc:expr, [$($p:expr),* $(,)?], $en:expr, $run:expr $(,)?) => {
$crate::CommandSpec {
id: $id,
label: $label,
menu: &[$($m),*],
shortcut: $sc,
params: $crate::Params::Static({
const PARAMS: &[$crate::Param] = &[$($p),*];
PARAMS
}),
enabled: $en,
run: $run,
mutates: true,
}
};
($id:literal, $label:literal, [$($m:literal),* $(,)?], $sc:expr, $params:literal, $en:expr, $run:expr $(,)?) => {
$crate::CommandSpec {
id: $id,
label: $label,
menu: &[$($m),*],
shortcut: $sc,
params: $crate::Params::Text($params),
enabled: $en,
run: $run,
mutates: true,
}
};
}
#[macro_export]
macro_rules! query {
($id:literal, $label:literal, [$($p:expr),* $(,)?], $run:expr $(,)?) => {
$crate::CommandSpec {
id: $id,
label: $label,
menu: &[],
shortcut: None,
params: $crate::Params::Static({
const PARAMS: &[$crate::Param] = &[$($p),*];
PARAMS
}),
enabled: $crate::always,
run: $run,
mutates: false,
}
};
($id:literal, $label:literal, $params:literal, $run:expr $(,)?) => {
$crate::CommandSpec {
id: $id,
label: $label,
menu: &[],
shortcut: None,
params: $crate::Params::Text($params),
enabled: $crate::always,
run: $run,
mutates: false,
}
};
}