From 79ec6878877f0fd9246d67d3cd4f8cc2d1200150 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Fri, 17 Jul 2026 11:08:07 +0800 Subject: refactor: rename `mingling_picker` to `arg_picker` --- arg_picker/README.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 arg_picker/README.md (limited to 'arg_picker/README.md') diff --git a/arg_picker/README.md b/arg_picker/README.md new file mode 100644 index 0000000..14051f3 --- /dev/null +++ b/arg_picker/README.md @@ -0,0 +1,47 @@ +# Argument Picker + +A command-line argument parser for [Mingling](https://github.com/mingling-rs/mingling), enabled by the `mingling/picker` feature. + +```toml +[dependencies.mingling] +version = "0.3.0" +features = [ + "picker" +] +``` + +Of course, you can also use it as a standalone crate by replacing `mingling::picker` with `arg_picker`: + +```toml +[dependencies] +arg-picker = "0.1.0" +``` + +## Chained Argument Parser + +Provides a clean chained-call API for declaring arguments to parse: + +```rust +use arg_picker::prelude::*; + +let args: Vec<&str> = vec!["--name", "Bob", "--age", "24"]; + +let (name, age) = args + .pick(&arg![name: String]) + .or(|| "Alice".to_string()) + .pick(&arg![age: i32]) + .or(|| 24) + .post(|num| num.clamp(0, 120)) + .unwrap(); + +assert_eq!(name, "Bob".to_string()); +assert_eq!(age, 24); +``` + +## Parsing Function Library + +Provides a pure function library `parselib` for analyzing the structure of command-line arguments. + +```rust +use arg_picker::parselib::*; +``` -- cgit