use normalize_output::OutputFormatter;
use normalize_output::diagnostics::DiagnosticsReport;
use serde::Serialize;
use std::path::Path;
#[derive(Debug, Serialize, schemars::JsonSchema)]
pub struct BudgetRulesReport(pub DiagnosticsReport);
impl OutputFormatter for BudgetRulesReport {
fn format_text(&self) -> String {
self.0.format_text()
}
fn format_pretty(&self) -> String {
self.0.format_pretty()
}
}
impl From<BudgetRulesReport> for DiagnosticsReport {
fn from(report: BudgetRulesReport) -> Self {
report.0
}
}
pub fn build_budget_report(root: &Path) -> BudgetRulesReport {
let factory: normalize_budget::DiffMetricFactory = normalize_budget::default_diff_metrics;
BudgetRulesReport(normalize_budget::service::build_budget_report(
root, &factory,
))
}