<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mingling.git/mingling_picker_macros/src, branch feat/picker2</title>
<subtitle>用于开发多子命令的命令行框架
</subtitle>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/'/>
<entry>
<title>refactor(arg): simplify escape handling in char extraction</title>
<updated>2026-07-16T12:03:18+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-16T12:03:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=c906c757aac0260594beb4c9efde4b0e199512ff'/>
<id>c906c757aac0260594beb4c9efde4b0e199512ff</id>
<content type='text'>
Remove redundant comment lines from pick_string and replace explicit
escape mappings in arg macro with a catch-all that handles both literal
and control characters
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove redundant comment lines from pick_string and replace explicit
escape mappings in arg macro with a catch-all that handles both literal
and control characters
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor: rename PickerFlag and PickerFlagAttr to PickerArg and</title>
<updated>2026-07-16T09:05:29+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-16T09:05:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=63730b461c009a33b08f9b98c0a583f08341895c'/>
<id>63730b461c009a33b08f9b98c0a583f08341895c</id>
<content type='text'>
PickerArgAttr
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
PickerArgAttr
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(picker): add `mingling_support` feature and `is_flag` field</title>
<updated>2026-07-14T18:41:14+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-14T18:41:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=d3ac40a44c5dec3f56393876c669ce7e0819a69e'/>
<id>d3ac40a44c5dec3f56393876c669ce7e0819a69e</id>
<content type='text'>
Rename the `core` feature to `mingling_support` in `mingling_picker` and
propagate it through `mingling_picker_macros`.  Add the `is_flag` field
to `PickerTag` to indicate participation in parsing after a `--`
separator.  Remove empty `seek.rs` file.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rename the `core` feature to `mingling_support` in `mingling_picker` and
propagate it through `mingling_picker_macros`.  Add the `is_flag` field
to `PickerTag` to indicate participation in parsing after a `--`
separator.  Remove empty `seek.rs` file.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat: use `From&lt;TokenStream&gt;` conversion instead of parsing string</title>
<updated>2026-07-13T19:32:30+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-13T19:32:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=17a3fbbe0c24eea2e240d081043dd1e4915c3f2d'/>
<id>17a3fbbe0c24eea2e240d081043dd1e4915c3f2d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(flag): simplify argument parsing by removing name inference</title>
<updated>2026-07-13T19:30:02+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-13T19:30:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=e3e94c2f35608833b42b07a8e1ecf5a06741ce8d'/>
<id>e3e94c2f35608833b42b07a8e1ecf5a06741ce8d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<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>refactor: rename PickerArguments to PickerArgs and PickerRequirement to</title>
<updated>2026-07-13T18:27:36+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-13T18:24:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=3f90ae7c987b16d485a2fb4e9f9bcb3774d37530'/>
<id>3f90ae7c987b16d485a2fb4e9f9bcb3774d37530</id>
<content type='text'>
PickerFlag
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
PickerFlag
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(mingling_picker): move parse result out of requirement and into</title>
<updated>2026-07-13T18:17:33+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-13T18:17:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=de370df01a171b4fd910dfa9a067830acd1f9a3c'/>
<id>de370df01a171b4fd910dfa9a067830acd1f9a3c</id>
<content type='text'>
pattern

BREAKING CHANGE: `PickerRequirement` no longer stores a `PickerResult`.
Parsed results are now held in the `PickerPattern` structs.
The `result`, `result_mut`, `set_result`, `reset_result`, and
`with_result` methods on `PickerRequirement` have been removed.
The `Picker::pick` method is introduced to begin a pattern definition.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
pattern

BREAKING CHANGE: `PickerRequirement` no longer stores a `PickerResult`.
Parsed results are now held in the `PickerPattern` structs.
The `result`, `result_mut`, `set_result`, `reset_result`, and
`with_result` methods on `PickerRequirement` have been removed.
The `Picker::pick` method is introduced to begin a pattern definition.
</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>
