aboutsummaryrefslogtreecommitdiff
path: root/mingling_picker_macros/src/internal_repeat.rs
Commit message (Collapse)AuthorAgeFilesLines
* feat(mingling_picker_macros): add $+ $- $^ special tokens to魏曹先生3 days1-42/+155
| | | | | | | | | | | | | | | | internal_repeat Extend the `internal_repeat` macro with new special tokens: - `$+`/`ident$+` for current + 1 - `$-`/`ident$-` for current - 1 (clamped at 0) - `$^`/`ident$^` for min (aka start) value Move the repetition marker from outside the paren to the last token inside, supporting `(group,+)` syntax where `+` is the final token. A trailing `+` or `-` after `)` shifts the repetition count. Add `PickerPattern::pick` method using new syntax to allow incremental composition of typed picks.
* feat(picker): add `is_empty` method and refactor `if let` chains魏曹先生3 days1-26/+24
| | | | | Refactor multiple `if let` patterns in macros to use the let-chain syntax for improved readability
* feat(picker): add core trait, types, and builder macro for argument魏曹先生3 days1-0/+204
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`.