Skip to main content

omni_dev/coverage/
mod.rs

1//! Diff/patch coverage analysis.
2//!
3//! Ingests a per-line coverage report (lcov / llvm-cov JSON / cobertura) plus a
4//! git diff and produces PR-attributable coverage: **patch coverage** (the
5//! fraction of lines the diff added that are covered), the explicit list of
6//! **uncovered new lines**, project before/after **deltas**, and **indirect**
7//! coverage flips on unchanged lines.
8//!
9//! Pipeline:
10//! 1. [`format::parse`] turns report text into a per-line [`model::CoverageReport`].
11//! 2. [`diff::DiffModel::between`] builds the added-line sets and base↔head
12//!    alignment from `git2`.
13//! 3. [`analysis::analyze`] attributes coverage to the diff.
14//! 4. [`render::render`] emits markdown / YAML / JSON.
15
16pub mod analysis;
17pub mod cobertura;
18pub mod diff;
19pub mod format;
20pub mod lcov;
21pub mod llvm_json;
22pub mod model;
23pub mod render;
24
25pub use analysis::{analyze, CoverageDiff, DiffScope};
26pub use diff::{default_base_ref, DiffModel};
27pub use format::{parse, Format};
28pub use model::{CoverageReport, FileCoverage};
29pub use render::{render, OutputFormat, RenderOptions};