<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mingling.git/mingling_macros/src, branch picker-0.1.0</title>
<subtitle>用于开发多子命令的命令行框架
</subtitle>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/'/>
<entry>
<title>feat(any): make `Grouped` trait unsafe and encapsulate `AnyOutput`</title>
<updated>2026-07-21T11:16:31+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-21T11:16:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=1803dd427416ef19918c0ec7d50093b6d45f29af'/>
<id>1803dd427416ef19918c0ec7d50093b6d45f29af</id>
<content type='text'>
fields

Declare `Grouped` as `unsafe trait` to make its soundness invariant
visible.
Make `AnyOutput.type_id` and `member_id` private; add public accessors
and
the `unsafe fn new_bare` constructor.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fields

Declare `Grouped` as `unsafe trait` to make its soundness invariant
visible.
Make `AnyOutput.type_id` and `member_id` private; add public accessors
and
the `unsafe fn new_bare` constructor.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: qualify `render` call as `ProgramCollect::render` in error path</title>
<updated>2026-07-21T01:54:50+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-21T01:54:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=ee01756279ef17487d19659adedc0639547bbd25'/>
<id>ee01756279ef17487d19659adedc0639547bbd25</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 `#[mlint(...)]` marker attribute macro</title>
<updated>2026-07-21T00:54:24+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-21T00:54:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=3662fc60570280c0c99ed3048c7c67e76069324f'/>
<id>3662fc60570280c0c99ed3048c7c67e76069324f</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 render_route macro and renderify attribute for render</title>
<updated>2026-07-20T23:37:34+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-20T23:37:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=67ec96406e6f4b8f30bc0a38c9ba95845b3cfb52'/>
<id>67ec96406e6f4b8f30bc0a38c9ba95845b3cfb52</id>
<content type='text'>
pipeline error routing
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
pipeline error routing
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(chain): replace Into turbofish with Routable::to_chain</title>
<updated>2026-07-20T22:37:21+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-20T22:37:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=8a230bd93b4801cc9001d0611ade16261e4f0cc4'/>
<id>8a230bd93b4801cc9001d0611ade16261e4f0cc4</id>
<content type='text'>
Remove the `origin_return_type` parameter and replace the generic `Into`
conversion with a direct call to `Routable::&lt;#program_type&gt;::to_chain`.
For non-unit returns, also wrap the function call expression in
`to_chain()` upfront to satisfy the `ChainProcess&lt;C&gt;` requirement of
`__modify_res_and_return_route`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove the `origin_return_type` parameter and replace the generic `Into`
conversion with a direct call to `Routable::&lt;#program_type&gt;::to_chain`.
For non-unit returns, also wrap the function call expression in
`to_chain()` upfront to satisfy the `ChainProcess&lt;C&gt;` requirement of
`__modify_res_and_return_route`.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(core): add generic parameter `C` to `StructuralData` trait</title>
<updated>2026-07-20T21:49:00+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-20T21:49:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=700c049f64b66f424cda5da3021dfce4462655ca'/>
<id>700c049f64b66f424cda5da3021dfce4462655ca</id>
<content type='text'>
Make `StructuralData` and `StructuralDataSealed` generic over a program
collector type to bypass the orphan rule for `group_structural!`. This
enables external types to implement `StructuralData&lt;crate::ThisProgram&gt;`
without violating coherence.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make `StructuralData` and `StructuralDataSealed` generic over a program
collector type to bypass the orphan rule for `group_structural!`. This
enables external types to implement `StructuralData&lt;crate::ThisProgram&gt;`
without violating coherence.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(core, macros): add r_append! macro and RenderResult::append_other</title>
<updated>2026-07-20T20:26:10+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-20T20:26:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=2683d7c6c3c88355fd3188ac2b2c68338ae2d205'/>
<id>2683d7c6c3c88355fd3188ac2b2c68338ae2d205</id>
<content type='text'>
Implement `RenderResult::append_other()` to merge buffered content and
immediate output behavior from one result into another. Add the
`r_append!` macro with both explicit buffer (`dst, src`) and implicit
buffer (`src`) usage forms, re-exported from `mingling::prelude`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implement `RenderResult::append_other()` to merge buffered content and
immediate output behavior from one result into another. Add the
`r_append!` macro with both explicit buffer (`dst, src`) and implicit
buffer (`src`) usage forms, re-exported from `mingling::prelude`.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(core)!: replace RenderResult with buffered output model</title>
<updated>2026-07-20T19:46:06+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-20T19:46:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=c81485b6ae1ba80d658ad8e4482d384303b539ef'/>
<id>c81485b6ae1ba80d658ad8e4482d384303b539ef</id>
<content type='text'>
Remove `Deref&lt;Target=str&gt;` and `render_text:String` in favor of
`render_buffer:Vec&lt;(String, RenderResultMode)&gt;` and an
`immediate_output`
flag. Add `RenderResultMode` enum, `r_eprint!`/`r_eprintln!` macros, and
new buffer manipulation methods (`append_to_buffer`, `eprint`, etc.).
Update `Display` to trim output and remove trailing newline. Migrate all
callers and tests away from `Deref` usage.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove `Deref&lt;Target=str&gt;` and `render_text:String` in favor of
`render_buffer:Vec&lt;(String, RenderResultMode)&gt;` and an
`immediate_output`
flag. Add `RenderResultMode` enum, `r_eprint!`/`r_eprintln!` macros, and
new buffer manipulation methods (`append_to_buffer`, `eprint`, etc.).
Update `Display` to trim output and remove trailing newline. Migrate all
callers and tests away from `Deref` usage.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: conditionally compile pathf_hint based on "pathf" feature</title>
<updated>2026-07-20T06:58:50+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-20T06:58:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=33da7c8cb4f24caeef4e8127bc484bc9d236a0f3'/>
<id>33da7c8cb4f24caeef4e8127bc484bc9d236a0f3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>chore: add missing docs lint and document public API</title>
<updated>2026-07-20T06:49:47+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-20T06:49:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=9f5a0f2e9325264564bc6fe9ff544c034ad16287'/>
<id>9f5a0f2e9325264564bc6fe9ff544c034ad16287</id>
<content type='text'>
Add `#![deny(missing_docs)]` across multiple crates and fill in
documentation for all public items, including struct fields, enum
variants, trait methods, and proc macros.  Also mark two shell scripts
as executable.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add `#![deny(missing_docs)]` across multiple crates and fill in
documentation for all public items, including struct fields, enum
variants, trait methods, and proc macros.  Also mark two shell scripts
as executable.
</pre>
</div>
</content>
</entry>
</feed>
