From 0a2ef958c0dca21d19e4ffc38ba5a7c4078e182a Mon Sep 17 00:00:00 2001 From: Weicao-CatilGrass <1992414357@qq.com> Date: Sat, 23 May 2026 23:41:04 +0800 Subject: Rework examples and add entry macro for testing --- examples/example-picker/Cargo.lock | 111 ------------------------------------ examples/example-picker/Cargo.toml | 8 --- examples/example-picker/src/main.rs | 60 ------------------- 3 files changed, 179 deletions(-) delete mode 100644 examples/example-picker/Cargo.lock delete mode 100644 examples/example-picker/Cargo.toml delete mode 100644 examples/example-picker/src/main.rs (limited to 'examples/example-picker') diff --git a/examples/example-picker/Cargo.lock b/examples/example-picker/Cargo.lock deleted file mode 100644 index eada902..0000000 --- a/examples/example-picker/Cargo.lock +++ /dev/null @@ -1,111 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "example-picker" -version = "0.0.1" -dependencies = [ - "mingling", - "tokio", -] - -[[package]] -name = "just_fmt" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5454cda0d57db59778608d7a47bff5b16c6705598265869fb052b657f66cf05e" - -[[package]] -name = "mingling" -version = "0.1.9" -dependencies = [ - "mingling_core", - "mingling_macros", - "size", -] - -[[package]] -name = "mingling_core" -version = "0.1.9" -dependencies = [ - "just_fmt", -] - -[[package]] -name = "mingling_macros" -version = "0.1.9" -dependencies = [ - "just_fmt", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" - -[[package]] -name = "proc-macro2" -version = "1.0.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" -dependencies = [ - "proc-macro2", -] - -[[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.117" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "tokio" -version = "1.52.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67dee974fe86fd92cc45b7a95fdd2f99a36a6d7b0d431a231178d3d670bbcc6" -dependencies = [ - "pin-project-lite", - "tokio-macros", -] - -[[package]] -name = "tokio-macros" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "unicode-ident" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" diff --git a/examples/example-picker/Cargo.toml b/examples/example-picker/Cargo.toml deleted file mode 100644 index d8e9c86..0000000 --- a/examples/example-picker/Cargo.toml +++ /dev/null @@ -1,8 +0,0 @@ -[package] -name = "example-picker" -version = "0.0.1" -edition = "2024" - -[dependencies] -mingling = { path = "../../mingling", features = ["parser"] } -tokio = { version = "1", features = ["rt", "rt-multi-thread", "macros"] } 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!(); -- cgit