aboutsummaryrefslogtreecommitdiff
path: root/docs/dev/pages/issues/t1_modify-dispatcher-syntax.md
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-08-17 00:26:00 +0800
committer魏曹先生 <1992414357@qq.com>2026-08-17 00:40:37 +0800
commit1cd4a824b3bffbbdf391837288921d538438a751 (patch)
treea8ea0cf092d7862d15018e434c0af9707a67db94 /docs/dev/pages/issues/t1_modify-dispatcher-syntax.md
parent62d2f8637da3274fc22debb62b79f15e521d503e (diff)
docs: split 0.5.0 roadmap into individual issue pages
Diffstat (limited to 'docs/dev/pages/issues/t1_modify-dispatcher-syntax.md')
-rw-r--r--docs/dev/pages/issues/t1_modify-dispatcher-syntax.md44
1 files changed, 44 insertions, 0 deletions
diff --git a/docs/dev/pages/issues/t1_modify-dispatcher-syntax.md b/docs/dev/pages/issues/t1_modify-dispatcher-syntax.md
new file mode 100644
index 0000000..f1a9346
--- /dev/null
+++ b/docs/dev/pages/issues/t1_modify-dispatcher-syntax.md
@@ -0,0 +1,44 @@
+<h1 align="center">[T1] Modify the dispatcher! Syntax</h1>
+<p align="center">
+ Breaking: drop the <code>CMD*</code> struct from the explicit form of <code>dispatcher!</code>
+</p>
+
+> [!NOTE]
+>
+> This is a **Breaking Change** planned for Mingling 0.5.0, and it depends on [Remove with_dispatcher and with_dispatchers](t0_remove-with-dispatcher).
+
+## Background
+
+Once `Dispatcher` registration is compile-time collected (see [Remove with_dispatcher and with_dispatchers](t0_remove-with-dispatcher)), the `CMD*` struct becomes unnecessary — it only existed to give `with_dispatcher` something to register.
+
+## Plan
+
+Simplify the `dispatcher!` syntax: the explicit form no longer creates a `CMD*` struct, so only the entry type needs to be given.
+
+```rust
+// Before
+dispatcher!("command", CMDCommand => EntryCommand);
+
+// After
+dispatcher!("command", EntryCommand);
+
+// NOTE: The implicit mode is not affected
+```
+
+## Tasks
+
+- [ ] Update `dispatcher!` to accept the simplified explicit form (`"name", EntryType`)
+- [ ] Decide whether the old `CMDType => EntryType` form should error with a helpful message or be removed outright
+- [ ] Remove the generated `CMD*` struct machinery
+- [ ] Update `#[command]` macro internals that depend on `CMD*`
+- [ ] Migrate examples, tests, and docs
+- [ ] Keep the implicit mode (`dispatcher!("name")`) working unchanged
+
+## 🕘 Progress
+
+- [ ] In Progress
+- [ ] Complete
+
+<p align="center" style="font-size: 0.85em; color: gray;">
+ Written by @Weicao-CatilGrass
+</p>