Skip to main content

agentshield/output/
json.rs

1use crate::error::Result;
2use crate::rules::policy::PolicyVerdict;
3use crate::rules::Finding;
4
5use serde::Serialize;
6
7#[derive(Serialize)]
8struct JsonReport<'a> {
9    findings: &'a [Finding],
10    verdict: &'a PolicyVerdict,
11}
12
13/// Render findings as a JSON report.
14pub fn render(findings: &[Finding], verdict: &PolicyVerdict) -> Result<String> {
15    let report = JsonReport { findings, verdict };
16    let json = serde_json::to_string_pretty(&report)?;
17    Ok(json)
18}