<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mingling.git/mingling_core/src/renderer, branch 0.4.0</title>
<subtitle>用于开发多子命令的命令行框架
</subtitle>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/'/>
<entry>
<title>feat(core): replace immediate output flag with print hook system</title>
<updated>2026-08-14T18:56:59+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-14T18:56:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=10ace1c363e77f51b850aed92c4fe2628dd1e322'/>
<id>10ace1c363e77f51b850aed92c4fe2628dd1e322</id>
<content type='text'>
Refactor `RenderResult` to support multiple user-defined print hooks
via a new `RenderResultPrint` struct containing content and output
mode. Add `bind_print_hook()` for custom sinks and reimplement
`immediate_output()` as a built-in hook. Update manual `Clone`,
`PartialEq`, `Eq`, and `Debug` implementations since hooks are opaque
closures.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Refactor `RenderResult` to support multiple user-defined print hooks
via a new `RenderResultPrint` struct containing content and output
mode. Add `bind_print_hook()` for custom sinks and reimplement
`immediate_output()` as a built-in hook. Update manual `Clone`,
`PartialEq`, `Eq`, and `Debug` implementations since hooks are opaque
closures.
</pre>
</div>
</content>
</entry>
<entry>
<title>docs: expand RenderResult documentation</title>
<updated>2026-08-14T10:23:08+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-14T10:23:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=5302a368daf7890fa51da640a047d5b71603b660'/>
<id>5302a368daf7890fa51da640a047d5b71603b660</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): move config types to public config module</title>
<updated>2026-08-14T10:02:09+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-14T09:47:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=9c8fe13c2629a4318bd12815c07cef1371ba85a2'/>
<id>9c8fe13c2629a4318bd12815c07cef1371ba85a2</id>
<content type='text'>
Refactor program configuration types into a dedicated public `config`
module under `mingling_core`, making `StructuralRendererSetting`
accessible via `mingling_core::config` instead of the crate root.

Update all internal references and setup modules to use the new
`config::` path convention.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Refactor program configuration types into a dedicated public `config`
module under `mingling_core`, making `StructuralRendererSetting`
accessible via `mingling_core::config` instead of the crate root.

Update all internal references and setup modules to use the new
`config::` path convention.
</pre>
</div>
</content>
</entry>
<entry>
<title>chore: add "Doc Not Optimize" comments to source files</title>
<updated>2026-08-13T16:23:06+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-13T16:23:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=1198f2b81a845bd475594cdf42d04e7bd750ebd2'/>
<id>1198f2b81a845bd475594cdf42d04e7bd750ebd2</id>
<content type='text'>
Mark all source files with a comment indicating they are not optimized
for documentation purposes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Mark all source files with a comment indicating they are not optimized
for documentation purposes.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(core): improve code style and public API clarity</title>
<updated>2026-08-10T07:49:31+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-10T07:49:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=a9d5943939261e27e58bcf5cacbb618a0f63e999'/>
<id>a9d5943939261e27e58bcf5cacbb618a0f63e999</id>
<content type='text'>
Replace bool-based settings with enums, refine visibility and
signatures, and standardize `Self` usage across the crate.

- Introduce `ErrorOutput`, `RenderOutput`, `PanicSilence`, `Verbosity`,
  `ColorOutput`, and `ProgressOutput` enums for clearer configuration
  semantics
- Make `GlobalResources`, `ProgramCell`, and
  `split_input`/`split_input_string` public
- Change hook info parameters to accept references and
  `split_input_string` to take `&amp;str`
- Apply `Self` shorthand throughout implementations and add
  `#[must_use]` attributes where appropriate
- Enable strict clippy lints with targeted allowances
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace bool-based settings with enums, refine visibility and
signatures, and standardize `Self` usage across the crate.

- Introduce `ErrorOutput`, `RenderOutput`, `PanicSilence`, `Verbosity`,
  `ColorOutput`, and `ProgressOutput` enums for clearer configuration
  semantics
- Make `GlobalResources`, `ProgramCell`, and
  `split_input`/`split_input_string` public
- Change hook info parameters to accept references and
  `split_input_string` to take `&amp;str`
- Apply `Self` shorthand throughout implementations and add
  `#[must_use]` attributes where appropriate
- Enable strict clippy lints with targeted allowances
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(core): write RenderResult::eprintln to stderr</title>
<updated>2026-08-05T04:26:52+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-05T04:26:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=08e804e75478953aa656064ac25903858bf5ef64'/>
<id>08e804e75478953aa656064ac25903858bf5ef64</id>
<content type='text'>
Fix the method to use `eprintln!` instead of `println!` when
`immediate_output` is enabled, ensuring error output goes to stderr.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix the method to use `eprintln!` instead of `println!` when
`immediate_output` is enabled, ensuring error output goes to stderr.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(renderer): add exit_process method to RenderResult</title>
<updated>2026-07-28T14:40:33+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-28T14:40:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=18acfba07497ff5554f2790a170d003ed6a7dbfb'/>
<id>18acfba07497ff5554f2790a170d003ed6a7dbfb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(renderer): add ExitCode conversions for RenderResult</title>
<updated>2026-07-28T14:35:00+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-28T14:35:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=6c8ffbadb82bd4e0596fa23f26d5a48a82268eb2'/>
<id>6c8ffbadb82bd4e0596fa23f26d5a48a82268eb2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>docs(core): add Clone and Eq derives to RenderResult</title>
<updated>2026-07-22T11:25:38+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-22T11:25:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=66069888bcaf4bfb839263d64579aa6f6125feea'/>
<id>66069888bcaf4bfb839263d64579aa6f6125feea</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): 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>
</feed>
