diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-08-17 05:49:19 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-08-17 05:49:19 +0800 |
| commit | 57c53affe3542cb6bd4e79ee4c18f20a1bd76b2d (patch) | |
| tree | 1cd4aef44cb7a45a8cd9d520b598f5f181e24c76 /mingling_cli/src/linter/mlint_report.rs | |
| parent | ef23cd944402939605c78a4a853ef6e33af02c21 (diff) | |
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.
Diffstat (limited to 'mingling_cli/src/linter/mlint_report.rs')
| -rw-r--r-- | mingling_cli/src/linter/mlint_report.rs | 21 |
1 files changed, 12 insertions, 9 deletions
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<MlintReport>); -pack!(ResultLintReportsAnnotateSnippet = Vec<MlintReport>); -pack!(ResultLintReportsJson = Vec<MlintReport>); +#[derive(Grouped, Wrap)] +pub struct StateLintReports(pub Vec<MlintReport>); +#[derive(Grouped, Wrap)] +pub struct ResultLintReportsAnnotateSnippet(Vec<MlintReport>); +#[derive(Grouped, Wrap)] +pub struct ResultLintReportsJson(Vec<MlintReport>); #[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<Message>, ) { - 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); |
