aboutsummaryrefslogtreecommitdiff
path: root/examples/example-picker/src/main.rs
diff options
context:
space:
mode:
authorWeicao-CatilGrass <1992414357@qq.com>2026-05-23 23:41:04 +0800
committerWeicao-CatilGrass <1992414357@qq.com>2026-05-23 23:49:34 +0800
commit0a2ef958c0dca21d19e4ffc38ba5a7c4078e182a (patch)
treec82fc4242ed393b132ba514eb434d722e7d9c387 /examples/example-picker/src/main.rs
parentccab1940c019dfbfb7dfcbbe4cb927258933755f (diff)
Rework examples and add entry macro for testing
Diffstat (limited to 'examples/example-picker/src/main.rs')
-rw-r--r--examples/example-picker/src/main.rs60
1 files changed, 0 insertions, 60 deletions
diff --git a/examples/example-picker/src/main.rs b/examples/example-picker/src/main.rs
deleted file mode 100644
index 651edb3..0000000
--- a/examples/example-picker/src/main.rs
+++ /dev/null
@@ -1,60 +0,0 @@
-//! `Mingling` Example - Picker
-//!
-//! ## Step1 - Enable Feature
-//! Enable the `parser` feature for mingling in `Cargo.toml`
-//! ```toml
-//! [dependencies]
-//! mingling = { version = "...", features = ["parser"] }
-//! ```
-//!
-//! ## Step2 - Write Code
-//! Write the following content into `main.rs`
-//!
-//! ## Step3 - Build and Run
-//! ```bash
-//! cargo run --manifest-path ./examples/example-picker/Cargo.toml -- pick Bob
-//! cargo run --manifest-path ./examples/example-picker/Cargo.toml -- pick Bob --age -15
-//! cargo run --manifest-path ./examples/example-picker/Cargo.toml -- pick --age 99
-//! ```
-
-use mingling::prelude::*;
-
-dispatcher!("pick", PickCommand => PickEntry);
-
-fn main() {
- let mut program = ThisProgram::new();
- program.with_dispatcher(PickCommand);
- program.exec();
-}
-
-pack!(NoNameProvided = ());
-pack!(ParsedPickInput = (i32, String));
-
-#[chain]
-fn parse(prev: PickEntry) -> Next {
- let picked = prev
- // First extract the named argument
- .pick_or("--age", 20)
- .after(|n: i32| n.clamp(0, 100))
- // Then sequentially extract the remaining arguments
- .pick_or_route((), NoNameProvided::default().to_render())
- .unpack();
-
- match picked {
- Ok(value) => ParsedPickInput::new(value).to_render(),
- Err(e) => e,
- }
-}
-
-#[renderer]
-fn render_parsed_pick_input(prev: ParsedPickInput) {
- let (age, name) = prev.inner;
- r_println!("Picked: name = {}, age = {}", name, age);
-}
-
-#[renderer]
-fn render_no_name_input(_prev: NoNameProvided) {
- r_println!("No name provided.");
-}
-
-gen_program!();