aboutsummaryrefslogtreecommitdiff
path: root/mingling_macros/src/func
Commit message (Collapse)AuthorAgeFilesLines
* feat(any): make `Grouped` trait unsafe and encapsulate `AnyOutput`魏曹先生9 hours3-13/+21
| | | | | | | | | | 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.
* feat(core): add generic parameter `C` to `StructuralData` trait魏曹先生23 hours1-2/+2
| | | | | | | 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<crate::ThisProgram>` without violating coherence.
* feat(core, macros): add r_append! macro and RenderResult::append_other魏曹先生24 hours1-0/+57
| | | | | | | 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`.
* feat(core)!: replace RenderResult with buffered output model魏曹先生25 hours1-0/+8
| | | | | | | | | | Remove `Deref<Target=str>` and `render_text:String` in favor of `render_buffer:Vec<(String, RenderResultMode)>` 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.
* fix: conditionally compile pathf_hint based on "pathf" feature魏曹先生37 hours1-0/+4
|
* feat(macros): add compile_error hint when pathf map is missing魏曹先生38 hours1-30/+52
| | | | | | Use Option for load_pathf_map return type and emit a descriptive compile_error when the type mapping file cannot be loaded, guiding users to set up build.rs correctly
* feat(macros): add `#[buffer]` attribute and re-export `r_print!(ln)`魏曹先生44 hours1-0/+62
| | | | | | | | | | | 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<str>`.
* feat(core)!: remove `to_chain` and `to_render` from `Grouped` trait魏曹先生47 hours1-2/+2
| | | | | Move routing methods exclusively to the `Routable` trait and update all macro-generated code to reference `Routable` instead of `Grouped`
* fix(dispatcher): qualify to_chain call with Routable trait魏曹先生2 days1-1/+1
|
* chore(macros): reorganize module hierarchy in mingling_macros魏曹先生2 days8-0/+1595
Restructure flat module layout into logical directories (attr/, derive/, func/, systems/, extensions/, utils.rs). Tighten internal function visibility to pub(crate). All public API signatures remain unchanged.