aboutsummaryrefslogtreecommitdiff
path: root/examples/full-todolist/src/main.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-08-17 04:05:41 +0800
committer魏曹先生 <1992414357@qq.com>2026-08-17 04:05:41 +0800
commitaa251efb87b561f62266628f06ad341253fbbdc5 (patch)
tree7d2cc2f34f3e4a7282d8d6f0ec0f5ae4bfc87002 /examples/full-todolist/src/main.rs
parentc23c590330af83afb6e146bcd9b0a274b3689d22 (diff)
refactor!: remove legacy parser feature and migrate to picker
The legacy `parser` feature and its module tree (`mingling::parser`, `Argument`, `Picker`, `Pickable`, etc.) have been fully removed and replaced by the `picker` feature powered by `arg-picker`. BREAKING CHANGE: Remove `parser` feature and use `picker` instead. Migration guide: Replace `features = ["parser"]` with `features = ["picker"]` and update API usage per the provided table.
Diffstat (limited to 'examples/full-todolist/src/main.rs')
-rw-r--r--examples/full-todolist/src/main.rs15
1 files changed, 9 insertions, 6 deletions
diff --git a/examples/full-todolist/src/main.rs b/examples/full-todolist/src/main.rs
index c0df1df..eea417a 100644
--- a/examples/full-todolist/src/main.rs
+++ b/examples/full-todolist/src/main.rs
@@ -9,9 +9,10 @@
use mingling::{
LazyInit, LazyRes,
macros::route,
+ picker::value::Flag,
prelude::*,
res::ResExitCode,
- setup::{ExitCodeSetup, HelpFlagSetup, StructuralRendererSetup},
+ setup::{ExitCodeSetup, picker::HelpFlagSetup, picker::StructuralRendererSetup},
};
use std::io::Write;
@@ -51,7 +52,7 @@ fn main() {
// Setups
program.with_setup(ExitCodeSetup::default());
program.with_setup(StructuralRendererSetup);
- program.with_setup(HelpFlagSetup::new(["--help", "-h"]));
+ program.with_setup(HelpFlagSetup::new(&arg![help: Flag, 'h']));
// Flags
let all = program.pick_global_flag(["-A", "--all"]);
@@ -74,9 +75,10 @@ fn main() {
#[chain]
fn handle_add(args: EntryAdd) -> Next {
let task: String = route! {
- args
- .pick_or_route((), ErrorNoTaskDescriptionProvided::new(()))
- .unpack()
+ args.pick_or_route(&arg![String], || {
+ ErrorNoTaskDescriptionProvided::new(()).to_chain()
+ })
+ .to_result()
};
StateAddTodo::new(task).to_chain()
}
@@ -115,7 +117,8 @@ fn handle_list(_args: EntryList, todolist: &mut LazyRes<ResTodoList>) -> Next {
#[chain]
fn handle_complete(args: EntryComplete) -> Next {
let index: i32 = route! {
- args.pick_or_route((), ErrorNoIndexProvided::new(())).unpack()
+ args.pick_or_route(&arg![i32], || ErrorNoIndexProvided::new(()).to_chain())
+ .to_result()
};
StateCompleteTodo::new(index).to_chain()
}