use anyhow::Result;

use crate::types::ScanResults;

pub mod console;
pub mod json;

pub use console::ConsoleReporter;
pub use json::JsonReporter;

/// Trait for report generation
pub trait Reporter {
    /// Generate a report string
    fn generate(&self, results: &ScanResults) -> Result<String>;

    /// Print results to stdout
    fn print(&self, results: &ScanResults) -> Result<()>;
}
