<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mingling.git/mingling_picker_macros/src/internal_repeat.rs, branch feat/picker2</title>
<subtitle>用于开发多子命令的命令行框架
</subtitle>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/'/>
<entry>
<title>feat(mingling_picker_macros): add $+ $- $^ special tokens to</title>
<updated>2026-07-13T19:10:57+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-13T19:10:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=132b065e53e53b588a496d8649bd60872ab88a5c'/>
<id>132b065e53e53b588a496d8649bd60872ab88a5c</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(picker): add `is_empty` method and refactor `if let` chains</title>
<updated>2026-07-13T17:49:39+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-13T17:49:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=62f6b476284da67efc55483a81b57f99a478702a'/>
<id>62f6b476284da67efc55483a81b57f99a478702a</id>
<content type='text'>
Refactor multiple `if let` patterns in macros to use the let-chain
syntax for improved readability
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Refactor multiple `if let` patterns in macros to use the let-chain
syntax for improved readability
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(picker): add core trait, types, and builder macro for argument</title>
<updated>2026-07-13T17:36:27+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-13T17:36:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=4665fc94ab9508d115298dd988e2381354f46c01'/>
<id>4665fc94ab9508d115298dd988e2381354f46c01</id>
<content type='text'>
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`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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`.
</pre>
</div>
</content>
</entry>
</feed>
