From 57c53affe3542cb6bd4e79ee4c18f20a1bd76b2d Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Mon, 17 Aug 2026 05:49:19 +0800 Subject: refactor!: replace pack! macros with derive-based pipeline types 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. --- mingling_cli/src/linter/mlint_report.rs | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'mingling_cli/src/linter/mlint_report.rs') diff --git a/mingling_cli/src/linter/mlint_report.rs b/mingling_cli/src/linter/mlint_report.rs index b594b9d..d7bf652 100644 --- a/mingling_cli/src/linter/mlint_report.rs +++ b/mingling_cli/src/linter/mlint_report.rs @@ -9,8 +9,8 @@ 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::{RendererInvoker, Routable}; +use mingling::macros::{buffer, chain, r_append, r_eprintln, renderer}; +use mingling::{Grouped, RendererInvoker, Routable, Wrap}; use crate::Next; use crate::metadata::setup::ResUsingJson; @@ -416,22 +416,25 @@ impl MlintReport { } } -pack!(StateLintReports = Vec); -pack!(ResultLintReportsAnnotateSnippet = Vec); -pack!(ResultLintReportsJson = Vec); +#[derive(Grouped, Wrap)] +pub struct StateLintReports(pub Vec); +#[derive(Grouped, Wrap)] +pub struct ResultLintReportsAnnotateSnippet(Vec); +#[derive(Grouped, Wrap)] +pub struct ResultLintReportsJson(Vec); #[chain] pub fn handle_state_lint_reports(reports: StateLintReports, using_json: &ResUsingJson) -> Next { if using_json.using { - ResultLintReportsJson::new(reports.inner).to_render() + ResultLintReportsJson(reports.0).to_render() } else { - ResultLintReportsAnnotateSnippet::new(reports.inner).to_render() + ResultLintReportsAnnotateSnippet(reports.0).to_render() } } #[renderer(buffer)] pub fn render_lint_reports(reports: ResultLintReportsAnnotateSnippet) { - for report in reports.inner { + for report in reports.0 { r_eprintln!("{}", report.to_annotate_snippet_render()); } } @@ -441,7 +444,7 @@ pub fn render_lint_reports_json( reports: ResultLintReportsJson, message_renderer: &RendererInvoker, ) { - for report in reports.inner { + for report in reports.0 { let message = report.to_compiler_message(); let result = message_renderer.invoke(message); r_append!(result); -- cgit