<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mingling.git/mingling, branch unreleased</title>
<subtitle>用于开发多子命令的命令行框架
</subtitle>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/'/>
<entry>
<title>feat(mingling, mingling_picker): add feature constants and fix</title>
<updated>2026-07-16T20:18:27+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-16T20:18:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=21b1872871a2af6483bfe8667749a9d3197b45de'/>
<id>21b1872871a2af6483bfe8667749a9d3197b45de</id>
<content type='text'>
formatting

Add `MINGLING_CORE` and `MINGLING_MACROS` feature flag constants to
the mingling crate, mirroring existing pattern for other features

Reorganize imports and reformat closures in mingling_picker for
consistent style
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
formatting

Add `MINGLING_CORE` and `MINGLING_MACROS` feature flag constants to
the mingling crate, mirroring existing pattern for other features

Reorganize imports and reformat closures in mingling_picker for
consistent style
</pre>
</div>
</content>
</entry>
<entry>
<title>docs: add module-level documentation and improve doc comments</title>
<updated>2026-07-16T20:04:11+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-16T20:04:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=dc9d5ea0026a6cb6bb477d5db8e9190a79ecb337'/>
<id>dc9d5ea0026a6cb6bb477d5db8e9190a79ecb337</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(picker2): complete Picker2 prototype</title>
<updated>2026-07-16T19:25:24+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-16T19:24:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=b9f208deed7b8e012fbcd84202e2fb1d5eb8eeb9'/>
<id>b9f208deed7b8e012fbcd84202e2fb1d5eb8eeb9</id>
<content type='text'>
Picker2 replaces the original Picker1 with a two-phase (tag → pick) +
mask-bitmap architecture, decoupling argument matching from type
conversion via a composable matcher pipeline.

Architecture
- FlagMatcher — boolean flags (--verbose)
- ArgMatcher — single flag+value pairs (--name Alice)
- MultiArgMatcher — multi-value flag groups (--files a.txt b.txt)
- PositionalMatcher — positional arguments, respects `--`
- SingleMatcher — composite for Single-type Pickables

Types
- Flag (Active/Inactive) — semantic bool flag value
- String + 14 numeric types via SinglePickable trait
- Vec&lt;T&gt; — greedy multi-value (all SinglePickable types)
- VecUntil&lt;T&gt; — bounded multi-value via BoundaryCheck trait
- VecUntil&lt;T&gt;, pick_string, pick_numbers, pick_bool, pick_flag

Style system
- UNIX_STYLE (kebab), POWERSHELL_STYLE (Pascal), WINDOWS_STYLE (Pascal)
- naming_case auto-conversion via just_fmt integration
- Style-aware separator (= for Unix, : for PS/Windows)

Infrastructure
- internal_repeat! macro generates PickerPattern1..=32
- SinglePickable blanket impl → Pickable
- MultiPickableWithBoundary trait with greedy/bounded variants
- 151 integration tests
- Docs updated for parser feature
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Picker2 replaces the original Picker1 with a two-phase (tag → pick) +
mask-bitmap architecture, decoupling argument matching from type
conversion via a composable matcher pipeline.

Architecture
- FlagMatcher — boolean flags (--verbose)
- ArgMatcher — single flag+value pairs (--name Alice)
- MultiArgMatcher — multi-value flag groups (--files a.txt b.txt)
- PositionalMatcher — positional arguments, respects `--`
- SingleMatcher — composite for Single-type Pickables

Types
- Flag (Active/Inactive) — semantic bool flag value
- String + 14 numeric types via SinglePickable trait
- Vec&lt;T&gt; — greedy multi-value (all SinglePickable types)
- VecUntil&lt;T&gt; — bounded multi-value via BoundaryCheck trait
- VecUntil&lt;T&gt;, pick_string, pick_numbers, pick_bool, pick_flag

Style system
- UNIX_STYLE (kebab), POWERSHELL_STYLE (Pascal), WINDOWS_STYLE (Pascal)
- naming_case auto-conversion via just_fmt integration
- Style-aware separator (= for Unix, : for PS/Windows)

Infrastructure
- internal_repeat! macro generates PickerPattern1..=32
- SinglePickable blanket impl → Pickable
- MultiPickableWithBoundary trait with greedy/bounded variants
- 151 integration tests
- Docs updated for parser feature
</pre>
</div>
</content>
</entry>
<entry>
<title>docs(changelog): document RenderResult::new and removed r_print macros</title>
<updated>2026-07-11T08:16:40+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-11T08:16:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=25e37e54220fce49a0387dc0a7c332b19e4240be'/>
<id>25e37e54220fce49a0387dc0a7c332b19e4240be</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>style: Reorder imports and reformat code with cargo fmt</title>
<updated>2026-07-11T08:10:53+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-11T08:10:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=85c8986f26031cc11ed1e1da77fdf099b5814381'/>
<id>85c8986f26031cc11ed1e1da77fdf099b5814381</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): add Write import and doc comment for picker re-export</title>
<updated>2026-07-11T08:03:09+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-11T08:03:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=4bf23c20f2d7cdfcc988b654a93abae1cd211ad8'/>
<id>4bf23c20f2d7cdfcc988b654a93abae1cd211ad8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(examples): migrate renderers to return RenderResult and add</title>
<updated>2026-07-11T07:21:40+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-11T07:15:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=95815041fe2817b4b6bdba6b4f332c90320af7bb'/>
<id>95815041fe2817b4b6bdba6b4f332c90320af7bb</id>
<content type='text'>
std::io::Write import

Replace r_println!/r_print! macro usage across all example renderers
with
explicit RenderResult construction using std::io::Write, enabling more
flexible output handling and reducing reliance on macro-side effects.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
std::io::Write import

Replace r_println!/r_print! macro usage across all example renderers
with
explicit RenderResult construction using std::io::Write, enabling more
flexible output handling and reducing reliance on macro-side effects.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat: require renderers to return RenderResult instead of mutating one</title>
<updated>2026-07-11T06:44:17+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-11T06:44:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=c5736152b0adeef17349265c4b9277ba17b8bcfd'/>
<id>c5736152b0adeef17349265c4b9277ba17b8bcfd</id>
<content type='text'>
BREAKING CHANGE: The `render` method on `Renderer`, `HelpRequest`, and
`ProgramCollect` now returns `RenderResult` instead of taking
`&amp;mut RenderResult`. The `r_print!` and `r_println!` macros have been
removed in favor of using `std::io::Write` directly on `RenderResult`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
BREAKING CHANGE: The `render` method on `Renderer`, `HelpRequest`, and
`ProgramCollect` now returns `RenderResult` instead of taking
`&amp;mut RenderResult`. The `r_print!` and `r_println!` macros have been
removed in favor of using `std::io::Write` directly on `RenderResult`.
</pre>
</div>
</content>
</entry>
<entry>
<title>docs(dev): add Picker2 arguments parser issue page</title>
<updated>2026-07-10T18:01:32+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-10T17:58:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=06b7ae78ed4b86b80e9708206787326c1142249a'/>
<id>06b7ae78ed4b86b80e9708206787326c1142249a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat: add mingling-picker and mingling-picker-macros crates</title>
<updated>2026-07-10T17:51:35+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-10T17:51:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=9245799135458d9afd5e779b6d061cee0962d585'/>
<id>9245799135458d9afd5e779b6d061cee0962d585</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
