<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mingling.git/mingling_macros/src/func/program_final_gen.rs, branch try-new-badges</title>
<subtitle>用于开发多子命令的命令行框架
</subtitle>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/'/>
<entry>
<title>fix: generate async-compatible empty do_chain fallback</title>
<updated>2026-08-17T21:18:48+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-17T21:18:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=d28dbd820af73aa9dc93d2df6c89d6f8c840e907'/>
<id>d28dbd820af73aa9dc93d2df6c89d6f8c840e907</id>
<content type='text'>
When a program declares no chains, the synthesized `do_chain` now
respects the `async` feature by emitting a boxed future signature
with a `Box::pin(async { panic! })` body, matching the trait
requirement and fixing E0053 in async builds.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When a program declares no chains, the synthesized `do_chain` now
respects the `async` feature by emitting a boxed future signature
with a `Box::pin(async { panic! })` body, matching the trait
requirement and fixing E0053 in async builds.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor!: replace pack! macros with derive-based pipeline types</title>
<updated>2026-08-16T21:49:19+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-16T21:49:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=57c53affe3542cb6bd4e79ee4c18f20a1bd76b2d'/>
<id>57c53affe3542cb6bd4e79ee4c18f20a1bd76b2d</id>
<content type='text'>
Remove the `pack!`, `pack_err!`, `pack_structural!`, and
`pack_err_structural!` macros, replacing all pipeline type definitions
with `#[derive(Grouped)]` and `#[derive(Grouped, Wrap)]` attributes.
This changes the generated struct shape from named-field structs with an
`inner` field to tuple structs accessed via `.0`, and removes the
auto-generated `name` and `info` fields from error types.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove the `pack!`, `pack_err!`, `pack_structural!`, and
`pack_err_structural!` macros, replacing all pipeline type definitions
with `#[derive(Grouped)]` and `#[derive(Grouped, Wrap)]` attributes.
This changes the generated struct shape from named-field structs with an
`inner` field to tuple structs accessed via `.0`, and removes the
auto-generated `name` and `info` fields from error types.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor!: remove dynamic dispatcher registration API</title>
<updated>2026-08-16T18:39:56+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-16T18:29:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=6980fbf2f9fb4c599d8dc6ff549a8b3288eb24e9'/>
<id>6980fbf2f9fb4c599d8dc6ff549a8b3288eb24e9</id>
<content type='text'>
Dispatchers are now always registered at compile time, removing the
`with_dispatcher` / `with_dispatchers` methods and the
`PathfinderConfig` API. The `dispatch_tree` feature now only controls
the matching strategy (trie vs linear list).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Dispatchers are now always registered at compile time, removing the
`with_dispatcher` / `with_dispatchers` methods and the
`PathfinderConfig` API. The `dispatch_tree` feature now only controls
the matching strategy (trie vs linear list).
</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/catilgrass/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/catilgrass/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(macros): clean up clippy lints and simplify code</title>
<updated>2026-08-10T08:04:57+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-10T08:04:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=eebcdf6b163174ec1629d121264c0477652e3323'/>
<id>eebcdf6b163174ec1629d121264c0477652e3323</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 entry metadata system with compile-time typed values</title>
<updated>2026-08-04T05:26:48+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-04T05:26:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=4588e17f7ddacd8391a5c881a209735e08d48797'/>
<id>4588e17f7ddacd8391a5c881a209735e08d48797</id>
<content type='text'>
Add `Metadata&lt;B&gt;` trait and `#[metadata(Entry)]` attribute macro
to attach arbitrary, compile-time-typed metadata to entries.
Implement `ProgramCollect::get_metadata&lt;T&gt;()` for runtime retrieval,
backed by a global registry populated by `register_metadata!`.

Extend `pathf` with `MetadataPattern` to resolve metadata types
across modules at build time. Add two examples demonstrating
metadata usage with and without pathf integration.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add `Metadata&lt;B&gt;` trait and `#[metadata(Entry)]` attribute macro
to attach arbitrary, compile-time-typed metadata to entries.
Implement `ProgramCollect::get_metadata&lt;T&gt;()` for runtime retrieval,
backed by a global registry populated by `register_metadata!`.

Extend `pathf` with `MetadataPattern` to resolve metadata types
across modules at build time. Add two examples demonstrating
metadata usage with and without pathf integration.
</pre>
</div>
</content>
</entry>
<entry>
<title>chore!: rename ErrorDispatcherNotFound to EntryFallback</title>
<updated>2026-08-03T05:36:13+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-03T05:36:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=9c8f5c8d60f3066fec8a1573aa3f5673e0b2ecb8'/>
<id>9c8f5c8d60f3066fec8a1573aa3f5673e0b2ecb8</id>
<content type='text'>
Rename the internal fallback type and its associated `ProgramCollect`
plumbing from `ErrorDispatcherNotFound`/`build_dispatcher_not_found` to
`EntryFallback`/`build_entry_fallback`, along with the generated enum
variant and pack type. Update all documentation, examples, and tests
accordingly.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rename the internal fallback type and its associated `ProgramCollect`
plumbing from `ErrorDispatcherNotFound`/`build_dispatcher_not_found` to
`EntryFallback`/`build_entry_fallback`, along with the generated enum
variant and pack type. Update all documentation, examples, and tests
accordingly.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(macros): wrap gen_program output in a hidden module</title>
<updated>2026-07-28T11:59:21+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-28T11:59:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=e3c060b3281b6255c2cdebdcf2dda2a22a758662'/>
<id>e3c060b3281b6255c2cdebdcf2dda2a22a758662</id>
<content type='text'>
Move pathf type resolution from `program_final_gen` to `gen_program` and
isolate generated code inside `__this_program_impl` to prevent namespace
pollution
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move pathf type resolution from `program_final_gen` to `gen_program` and
isolate generated code inside `__this_program_impl` to prevent namespace
pollution
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(macros): move pathf include from gen_program into</title>
<updated>2026-07-28T11:14:35+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-07-28T11:14:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=a11628efe9288739f5066af20121a6cda114e5f5'/>
<id>a11628efe9288739f5066af20121a6cda114e5f5</id>
<content type='text'>
program_final_gen
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
program_final_gen
</pre>
</div>
</content>
</entry>
</feed>
