diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-08-03 19:22:30 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-08-03 19:22:30 +0800 |
| commit | b846ddcaf51d28f3692b010b905b44dcd7b96a42 (patch) | |
| tree | 56c5190763ace7c8de8d69aaf2a4088ed7285ffc /mingling_cli/src/linter/mlint_report.rs | |
| parent | ffd2925b5fb619a91cd66f0e35a518c9077838d4 (diff) | |
feat(linter): use RendererInvoker for JSON report rendering
Replace AnyOutput-based dispatch with RendererInvoker in
render_lint_reports_json to improve type safety and clarity.
Diffstat (limited to 'mingling_cli/src/linter/mlint_report.rs')
| -rw-r--r-- | mingling_cli/src/linter/mlint_report.rs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/mingling_cli/src/linter/mlint_report.rs b/mingling_cli/src/linter/mlint_report.rs index 0472056..b594b9d 100644 --- a/mingling_cli/src/linter/mlint_report.rs +++ b/mingling_cli/src/linter/mlint_report.rs @@ -10,7 +10,7 @@ use cargo_metadata::{Message, PackageId}; use annotate_snippets::level::{ERROR, HELP, NOTE, WARNING}; use annotate_snippets::{AnnotationKind, Group, Patch, Renderer, Snippet}; use mingling::macros::{buffer, chain, pack, r_append, r_eprintln, renderer}; -use mingling::{AnyOutput, ProgramCollect, Routable}; +use mingling::{RendererInvoker, Routable}; use crate::Next; use crate::metadata::setup::ResUsingJson; @@ -437,9 +437,13 @@ pub fn render_lint_reports(reports: ResultLintReportsAnnotateSnippet) { } #[renderer(buffer)] -pub fn render_lint_reports_json(reports: ResultLintReportsJson) { +pub fn render_lint_reports_json( + reports: ResultLintReportsJson, + message_renderer: &RendererInvoker<Message>, +) { for report in reports.inner { - // DIRTY: Dispatch to the Message renderer using AnyOutput to obtain the render result and append it to the Buffer - r_append!(|| { crate::ThisProgram::render(AnyOutput::new(report.to_compiler_message())) }); + let message = report.to_compiler_message(); + let result = message_renderer.invoke(message); + r_append!(result); } } |
