aboutsummaryrefslogtreecommitdiff
path: root/mingling_picker/src/pickable.rs
Commit message (Collapse)AuthorAgeFilesLines
* feat(picker): add unwrap, unpack, to_result, to_option on PickerPattern魏曹先生21 hours1-2/+0
|
* feat(picker): add argument-position mask to tag phase魏曹先生21 hours1-0/+6
| | | | | | Pass a mutable mask to tag functions so Pickable implementations can detect which argument positions have already been claimed by other Pickables during the same parsing pass
* refactor: rename `PickerResult` to `PickerArgResult` and add new魏曹先生22 hours1-3/+3
| | | | `PickerResult` struct
* refactor: remove unnecessary `Default` bound from `Pickable` trait魏曹先生22 hours1-8/+1
|
* refactor(pickable): redesign Pickable trait with two-phase parse API魏曹先生34 hours1-32/+73
| | | | | | | | | | | | | | Introduce `get_attr`, `tag`, and `pick` as the new trait methods, replacing the single `tag` method that returned a `PickerTag`. This enables the parser to first collect all argument position requirements and then resolve them in a second pass. Rename `PickerTag` to `PickerArgInfo` and reorder `PickerFlagAttr` variants to reflect parse priority (`Positional < Flag < Single < Multi`). Add `positional_or_else` helper to `PickerFlagAttr`.
* feat: add lifetime-bound pickable support and refine type constraints魏曹先生42 hours1-7/+15
|
* feat(picker): add core trait, types, and builder macro for argument魏曹先生3 days1-0/+39
parsing Implement the foundational `mingling_picker` library along with its companion `mingling_picker_macros` crate. The picker provides: - `Pickable` trait for parsing types from raw strings - `PickerResult` enum modeling parse outcomes - `Picker` struct for storing and indexing command-line arguments - `PickerRequirement` struct for declarative parameter definitions - `PickerPattern` family (1..32) of typed pattern structs via the `internal_repeat` proc macro - `req!` proc macro as a succinct builder for `PickerRequirement` Re-export `mingling_picker::macros::*` from the `mingling` crate when the `picker` feature is enabled, replacing the previous wildcard re-export of `mingling_macros`.