aboutsummaryrefslogtreecommitdiff
path: root/mingling_cli/src/linter/mlint_report.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-08-17 05:49:19 +0800
committer魏曹先生 <1992414357@qq.com>2026-08-17 05:49:19 +0800
commit57c53affe3542cb6bd4e79ee4c18f20a1bd76b2d (patch)
tree1cd4aef44cb7a45a8cd9d520b598f5f181e24c76 /mingling_cli/src/linter/mlint_report.rs
parentef23cd944402939605c78a4a853ef6e33af02c21 (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.rs21
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);