use std::path::PathBuf;
#[derive(Debug, Clone, serde::Serialize)]
pub struct UntestedFile {
pub path: PathBuf,
pub value_export_count: usize,
}
#[derive(Debug, Clone, serde::Serialize)]
pub struct UntestedExport {
pub path: PathBuf,
pub export_name: String,
pub line: u32,
pub col: u32,
}
#[derive(Debug, Clone, Default, serde::Serialize)]
pub struct CoverageGapSummary {
pub runtime_files: usize,
pub covered_files: usize,
pub file_coverage_pct: f64,
pub untested_files: usize,
pub untested_exports: usize,
}
#[derive(Debug, Clone, Default, serde::Serialize)]
pub struct CoverageGaps {
pub summary: CoverageGapSummary,
#[serde(skip_serializing_if = "Vec::is_empty")]
pub files: Vec<UntestedFile>,
#[serde(skip_serializing_if = "Vec::is_empty")]
pub exports: Vec<UntestedExport>,
}
impl CoverageGaps {
#[must_use]
pub fn is_empty(&self) -> bool {
self.files.is_empty() && self.exports.is_empty()
}
}