From aa251efb87b561f62266628f06ad341253fbbdc5 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Mon, 17 Aug 2026 04:05:41 +0800 Subject: 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. --- examples/example-async-support/Cargo.lock | 25 ++++++++++++++++++------- examples/example-async-support/Cargo.toml | 4 ++-- examples/example-async-support/src/main.rs | 2 +- 3 files changed, 21 insertions(+), 10 deletions(-) (limited to 'examples/example-async-support') diff --git a/examples/example-async-support/Cargo.lock b/examples/example-async-support/Cargo.lock index a2751be..f122f6d 100644 --- a/examples/example-async-support/Cargo.lock +++ b/examples/example-async-support/Cargo.lock @@ -2,6 +2,23 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "arg-picker" +version = "0.2.0" +dependencies = [ + "arg-picker-macros", + "just_fmt", +] + +[[package]] +name = "arg-picker-macros" +version = "0.2.0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -60,9 +77,9 @@ dependencies = [ name = "mingling" version = "0.5.0" dependencies = [ + "arg-picker", "mingling_core", "mingling_macros", - "size", ] [[package]] @@ -145,12 +162,6 @@ dependencies = [ "serde", ] -[[package]] -name = "size" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6709c7b6754dca1311b3c73e79fcce40dd414c782c66d88e8823030093b02b" - [[package]] name = "syn" version = "2.0.118" diff --git a/examples/example-async-support/Cargo.toml b/examples/example-async-support/Cargo.toml index d1b952d..a0d2a75 100644 --- a/examples/example-async-support/Cargo.toml +++ b/examples/example-async-support/Cargo.toml @@ -6,8 +6,8 @@ edition = "2024" [dependencies.mingling] path = "../../mingling" -# Enable `parser` features -features = ["async", "parser"] +# Enable `picker` features +features = ["async", "picker"] # Import any async runtime, e.g. Tokio [dependencies.tokio] diff --git a/examples/example-async-support/src/main.rs b/examples/example-async-support/src/main.rs index ac1bcc1..090602a 100644 --- a/examples/example-async-support/src/main.rs +++ b/examples/example-async-support/src/main.rs @@ -47,7 +47,7 @@ pack!(ResultDownloaded = String); #[chain] // vvvvv_ `async` keyword can be used directly here pub async fn handle_download(args: EntryDownload) -> Next { - let file_name = args.pick(()).unpack(); + let file_name = args.pick_or_default(&arg![String]).unwrap(); fake_download(file_name).await.into() } -- cgit