use quartz_commands::module;
module! {
mod simple;
type Context<'ctx> = &'ctx mut u32;
command add
where additional: u32,
{
additional executes |ctx| {
let result = *ctx + additional;
println!("{} + {} = {}", *ctx, additional, result);
*ctx = result;
Ok(())
};
additional suggests |_ctx, _arg| {
["10", "20"].iter().copied()
};
}
}
fn main() {
use quartz_commands::CommandModule;
let mut x: u32 = 5;
assert!((Simple).dispatch("add 10", &mut x).is_ok());
assert_eq!(x, 15);
}