<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mingling.git/examples, branch dev/mingling_pathf</title>
<subtitle>用于开发多子命令的命令行框架
</subtitle>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/'/>
<entry>
<title>chore: clean up Cargo.toml metadata and update lockfiles</title>
<updated>2026-06-27T22:50:13+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-06-27T22:50:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=50f2d767e2d07685e49fb7deae68d506ea11a79d'/>
<id>50f2d767e2d07685e49fb7deae68d506ea11a79d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(macros): add async mutable resource injection for `#[chain]`</title>
<updated>2026-06-27T09:46:29+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-06-27T09:46:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=4f7bd4f6fa5d27cfe703c54aa029a321f40d19fb'/>
<id>4f7bd4f6fa5d27cfe703c54aa029a321f40d19fb</id>
<content type='text'>
Support `&amp;mut T` resource parameters in async chain functions by using
an extract-store pattern that avoids holding mutable borrows across
await
points. Remove the previous compile-time rejection of this combination.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Support `&amp;mut T` resource parameters in async chain functions by using
an extract-store pattern that avoids holding mutable borrows across
await
points. Remove the previous compile-time rejection of this combination.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(general_renderer): rename to structural_renderer</title>
<updated>2026-06-25T22:41:01+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-06-25T22:27:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=d1a74ce57e5be72436376a829e9c7e1e7c1c561b'/>
<id>d1a74ce57e5be72436376a829e9c7e1e7c1c561b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(core): decouple structured output from Groupped trait</title>
<updated>2026-06-25T22:08:12+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-06-25T22:08:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=e735671acb3a81e1b7e334e56b9ef3963ba0c2fc'/>
<id>e735671acb3a81e1b7e334e56b9ef3963ba0c2fc</id>
<content type='text'>
Introduce `StructuralData` sealed trait and `pack_structural!` /
`group_structural!` / `derive(StructuralData)` macros to control
structured rendering separately from grouping. `Groupped` no longer
requires `Serialize`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Introduce `StructuralData` sealed trait and `pack_structural!` /
`group_structural!` / `derive(StructuralData)` macros to control
structured rendering separately from grouping. `Groupped` no longer
requires `Serialize`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Redesign hook system with structured info types and ProgramControls</title>
<updated>2026-06-24T04:01:38+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-06-24T04:01:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=1d1baf75a3acb5eb32913a8bdad42bae42844aa2'/>
<id>1d1baf75a3acb5eb32913a8bdad42bae42844aa2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add IO error example with type alias in group macro</title>
<updated>2026-06-22T17:41:46+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-06-22T17:41:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=b75773a1177c6fe006bcd129b481ff42ecc3ec0e'/>
<id>b75773a1177c6fe006bcd129b481ff42ecc3ec0e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Make route! macro auto-convert error types</title>
<updated>2026-06-22T15:59:31+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-06-22T15:59:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=443ffe86485519a218997955335cde142733f88f'/>
<id>443ffe86485519a218997955335cde142733f88f</id>
<content type='text'>
`route!()` now calls `Groupped::to_chain()` on the error branch,
removing the need for callers to pre-convert with `.to_chain()` or
`.to_render()`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`route!()` now calls `Groupped::to_chain()` on the error branch,
removing the need for callers to pre-convert with `.to_chain()` or
`.to_render()`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add help command with exit code 2 for exitcode example</title>
<updated>2026-06-22T12:47:00+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-06-22T12:47:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=31b5abfc96013309530025b751293c7de916dcf3'/>
<id>31b5abfc96013309530025b751293c7de916dcf3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add `group!` macro for registering external types</title>
<updated>2026-06-19T17:30:10+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-06-19T17:30:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=d3177c386d739a3dc0e06890ad8f14713ef44ee0'/>
<id>d3177c386d739a3dc0e06890ad8f14713ef44ee0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add shared `MockProgramCollect` and conditional `Groupped` bounds</title>
<updated>2026-06-19T17:11:25+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-06-19T17:11:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=9d491352d161ee629cc47459537344ba0ea4bb35'/>
<id>9d491352d161ee629cc47459537344ba0ea4bb35</id>
<content type='text'>
Extract duplicate `MockCollect` implementations into a reusable
`MockProgramCollect` type. Conditionally require `Serialize` on the
`Groupped` trait when the `general_renderer` feature is enabled.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Extract duplicate `MockCollect` implementations into a reusable
`MockProgramCollect` type. Conditionally require `Serialize` on the
`Groupped` trait when the `general_renderer` feature is enabled.
</pre>
</div>
</content>
</entry>
</feed>
