diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-04-27 21:06:38 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-04-27 21:06:38 +0800 |
| commit | ad10b82c1e6785cbf88562117b1609905cfeb6dc (patch) | |
| tree | 5f7de552a570a4e0e3346e255a78d6687dfb6300 /CHANGELOG.md | |
| parent | 3fd6a7a27d7002cdf3ab5123b75c889d830e7145 (diff) | |
Add `route!` macro for early error routing
Diffstat (limited to 'CHANGELOG.md')
| -rw-r--r-- | CHANGELOG.md | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index f7a2ec2..582cbdb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,42 @@ fn your_command_help(_prev: YourEntry) { } ``` +7. **\[macros\]** Added the `route!` macro, which allows quick error routing within the `chain!` function. Usage is as follows: + +```rust +// Before +#[chain] +fn parse(prev: PickEntry) -> mingling::ChainProcess<ThisProgram> { + let picker = Picker::new(prev.inner); + let pick_result = picker + .pick_or_route((), NoNameProvided::default().to_render()) + .unpack(); + + match pick_result { + Ok(name) => { + // use name here + } + Err(e) => { + // handle error route here + e + } + } +} + +// After +#[chain] +fn parse(prev: PickEntry) -> mingling::ChainProcess<ThisProgram> { + let picker = Picker::new(prev.inner); + let name: String = route! { + picker + .pick_or_route((), NoNameProvided::default().to_render()) + .unpack() + }; + + // use name here +} +``` + #### **BREAKING CHANGES**: 1. **\[macros\]** Removed macro `dispatcher_render!` from `mingling_macros` |
