forge_guard/reports/
json.rs1use super::ReportGenerator;
4use crate::core::{AuditResult, ForgeGuardError};
5use std::path::Path;
6
7pub struct JsonReport;
9
10impl ReportGenerator for JsonReport {
11 fn generate(&self, result: &AuditResult) -> Result<String, ForgeGuardError> {
12 Ok(serde_json::to_string_pretty(result)?)
13 }
14
15 fn extension(&self) -> &'static str {
16 "json"
17 }
18}
19
20pub fn write_report(result: &AuditResult, path: &Path) -> Result<(), ForgeGuardError> {
22 let json = serde_json::to_string_pretty(result)?;
23 std::fs::write(path, json)?;
24 Ok(())
25}