From c23c590330af83afb6e146bcd9b0a274b3689d22 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Mon, 17 Aug 2026 03:27:46 +0800 Subject: refactor!: remove Node type and simplify dispatcher macro syntax The `dispatcher!` macro no longer requires a `CMD*` dispatcher type argument; the dispatcher struct is now generated internally as `__Dispatcher{Pascal}`. The `Node` type, `node!` macro, and `Dispatcher::node()` / `clone_dispatcher()` methods are removed. --- examples/example-command-macro/src/main.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'examples/example-command-macro/src') diff --git a/examples/example-command-macro/src/main.rs b/examples/example-command-macro/src/main.rs index d080043..e525098 100644 --- a/examples/example-command-macro/src/main.rs +++ b/examples/example-command-macro/src/main.rs @@ -26,21 +26,21 @@ pack!(ResultGreeting = String); pack!(ResultGoodbye = ()); // --------- IMPORTANT --------- -// Auto-generates dispatcher!("hello.world", CMDHelloWorld => EntryHelloWorld); +// Auto-generates dispatcher!("hello.world", EntryHelloWorld); #[command] fn hello_world() -> ResultGreeting { ResultGreeting::new("World".to_string()) } -// Auto-generates dispatcher!("hello-world", CMDGreetSomeone => EntryGreetSomeone); +// Auto-generates dispatcher!("hello-world", EntryGreetSomeone); #[command(node = "greet-someone")] fn greet_someone(args: Vec) -> ResultGreeting { let name = args.pick_or(&arg![String], || "World".to_string()).unwrap(); ResultGreeting::new(name) } -// Auto-generates dispatcher!("goodbye", CMDGoodBye => EntryGoodBye); -#[command(name = CMDGoodBye, entry = EntryGoodBye)] +// Auto-generates dispatcher!("goodbye", EntryGoodBye); +#[command(entry = EntryGoodBye)] fn goodbye() -> ResultGoodbye { ResultGoodbye::default() } -- cgit