Skip to main content

panic_attacker/report/
mod.rs

1// SPDX-License-Identifier: PMPL-1.0-or-later
2
3//! Report generation module
4
5pub mod formatter;
6pub mod generator;
7
8use crate::types::*;
9use anyhow::Result;
10use std::path::Path;
11
12pub use formatter::ReportFormatter;
13pub use generator::ReportGenerator;
14
15/// Generate a comprehensive assault report
16pub fn generate_assault_report(
17    xray_report: XRayReport,
18    attack_results: Vec<AttackResult>,
19) -> Result<AssaultReport> {
20    let generator = ReportGenerator::new();
21    generator.generate(xray_report, attack_results)
22}
23
24/// Save report to file
25pub fn save_report<P: AsRef<Path>>(report: &AssaultReport, path: P) -> Result<()> {
26    let formatter = ReportFormatter::new();
27    formatter.save(report, path)
28}
29
30/// Print report to console
31pub fn print_report(report: &AssaultReport) {
32    let formatter = ReportFormatter::new();
33    formatter.print(report);
34}