<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mingling.git/mingling_core, branch picker-0.1.0</title>
<subtitle>用于开发多子命令的命令行框架
</subtitle>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/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/catilgrass/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>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/catilgrass/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): add From impl for RenderResult with closure coercion</title>
<updated>2026-07-20T20:30:00+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-20T20:28:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=844c3c9029f75f37622413f3e3a92b93664852ed'/>
<id>844c3c9029f75f37622413f3e3a92b93664852ed</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, 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/catilgrass/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): return `&amp;mut Self` from builder methods</title>
<updated>2026-07-20T19:58:44+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-20T19:58:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=a3b75b7eeae5e7a0c53b6167bafb75a85fa6d9ce'/>
<id>a3b75b7eeae5e7a0c53b6167bafb75a85fa6d9ce</id>
<content type='text'>
Enables method chaining for `with_resource`, `with_dispatcher`,
`with_dispatchers`, `with_hook`, and `with_setup`
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Enables method chaining for `with_resource`, `with_dispatcher`,
`with_dispatchers`, `with_hook`, and `with_setup`
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(core): delegate stdout flushing to RenderResult::std_print</title>
<updated>2026-07-20T19:54:42+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-20T19:54:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=57746fc1512400fde467d3ccac4589915341416c'/>
<id>57746fc1512400fde467d3ccac4589915341416c</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)!: 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/catilgrass/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>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/catilgrass/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>
<entry>
<title>feat(asset): deprecate with_dispatcher when dispatch_tree is enabled</title>
<updated>2026-07-20T05:05:01+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-20T05:05:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=09a83d5013ae4d403a0c873caa6300449c8f138a'/>
<id>09a83d5013ae4d403a0c873caa6300449c8f138a</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 `#[buffer]` attribute and re-export `r_print!(ln)`</title>
<updated>2026-07-20T00:42:16+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-20T00:42:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=7b3a1d7fd9f60b91a7f9602374c081882d46facc'/>
<id>7b3a1d7fd9f60b91a7f9602374c081882d46facc</id>
<content type='text'>
macros

Reintroduce `r_print!` and `r_println!` macros as public exports, now
supporting both explicit buffer argument and implicit `#[buffer]` attr.
Add `#[buffer]` attribute macro that wraps unit-returning functions to
produce a `RenderResult` with an automatically injected buffer variable.
Relax `RenderResult::print()` and `println()` to accept `impl
AsRef&lt;str&gt;`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
macros

Reintroduce `r_print!` and `r_println!` macros as public exports, now
supporting both explicit buffer argument and implicit `#[buffer]` attr.
Add `#[buffer]` attribute macro that wraps unit-returning functions to
produce a `RenderResult` with an automatically injected buffer variable.
Relax `RenderResult::print()` and `println()` to accept `impl
AsRef&lt;str&gt;`.
</pre>
</div>
</content>
</entry>
</feed>
