crap4rust/coverage_io/
llvm_cov_provider.rs1use anyhow::Result;
6
7use crate::coverage_io::coverage::{ensure_coverage_path, load_coverage_records};
8use crate::coverage_io::coverage_record::CoverageRecord;
9use crate::invocation::config::Config;
10use crate::invocation::package_context::PackageContext;
11use crate::traits::coverage_provider::CoverageProvider;
12
13#[derive(Debug, Clone, Copy, Default)]
14pub struct LlvmCovProvider;
15
16impl LlvmCovProvider {
17 #[must_use]
18 pub const fn new() -> Self {
19 Self
20 }
21}
22
23impl CoverageProvider for LlvmCovProvider {
24 fn provide(&self, config: &Config, packages: &[PackageContext]) -> Result<Vec<CoverageRecord>> {
25 let coverage_path = ensure_coverage_path(config, packages)?;
26 load_coverage_records(&coverage_path)
27 }
28}