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-structural-renderer/Cargo.lock | 25 +++++++++++++++++------- examples/example-structural-renderer/Cargo.toml | 2 +- examples/example-structural-renderer/src/main.rs | 12 ++++++------ 3 files changed, 25 insertions(+), 14 deletions(-) (limited to 'examples/example-structural-renderer') diff --git a/examples/example-structural-renderer/Cargo.lock b/examples/example-structural-renderer/Cargo.lock index ac4cbba..cf2cfe3 100644 --- a/examples/example-structural-renderer/Cargo.lock +++ b/examples/example-structural-renderer/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", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -66,10 +83,10 @@ dependencies = [ name = "mingling" version = "0.5.0" dependencies = [ + "arg-picker", "mingling_core", "mingling_macros", "serde", - "size", ] [[package]] @@ -182,12 +199,6 @@ dependencies = [ "unsafe-libyaml", ] -[[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-structural-renderer/Cargo.toml b/examples/example-structural-renderer/Cargo.toml index e29e9c3..2851303 100644 --- a/examples/example-structural-renderer/Cargo.toml +++ b/examples/example-structural-renderer/Cargo.toml @@ -11,7 +11,7 @@ path = "../../mingling" features = [ "structural_renderer", "yaml_serde_fmt", - "parser", + "picker", ] [workspace] diff --git a/examples/example-structural-renderer/src/main.rs b/examples/example-structural-renderer/src/main.rs index eca87fc..a1bddbd 100644 --- a/examples/example-structural-renderer/src/main.rs +++ b/examples/example-structural-renderer/src/main.rs @@ -17,8 +17,8 @@ //! member_age: 22 //! ``` -use mingling::prelude::*; -use mingling::{parser::Picker, setup::StructuralRendererSetup, Grouped, StructuralData}; +use mingling::setup::picker::StructuralRendererSetup; +use mingling::{Grouped, StructuralData, prelude::*}; use serde::Serialize; use std::io::Write; @@ -55,10 +55,10 @@ struct Info { #[chain] fn parse_render(prev: EntryRender) -> Next { - let (name, age) = Picker::new(prev.inner) - .pick::(()) - .pick::(()) - .unpack(); + let (name, age) = prev + .pick_or_default(&arg![String]) + .pick_or_default(&arg![i32]) + .unwrap(); Info { name, age }.to_render() } -- cgit