normalize_native_rules/
budget.rs1use normalize_output::OutputFormatter;
6use normalize_output::diagnostics::DiagnosticsReport;
7use serde::Serialize;
8use std::path::Path;
9
10#[derive(Debug, Serialize, schemars::JsonSchema)]
16pub struct BudgetRulesReport(pub DiagnosticsReport);
17
18impl OutputFormatter for BudgetRulesReport {
19 fn format_text(&self) -> String {
20 self.0.format_text()
21 }
22
23 fn format_pretty(&self) -> String {
24 self.0.format_pretty()
25 }
26}
27
28impl From<BudgetRulesReport> for DiagnosticsReport {
29 fn from(report: BudgetRulesReport) -> Self {
30 report.0
31 }
32}
33
34pub fn build_budget_report(root: &Path) -> BudgetRulesReport {
39 let factory: normalize_budget::DiffMetricFactory = normalize_budget::default_diff_metrics;
40 BudgetRulesReport(normalize_budget::service::build_budget_report(
41 root, &factory,
42 ))
43}