1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
//! `ripr` is a static RIPR mutation-exposure analyzer for Rust workspaces.
//!
//! It does not run mutants. It reads changed Rust code, creates mutation-shaped
//! probes, and estimates whether tests appear to reach, infect, propagate, and
//! reveal those changed behaviors through meaningful oracles.
//!
//! # Library entry points
//!
//! Most integrations should start with [`check_workspace`] to analyze a unified
//! diff and obtain structured findings.
//!
//! # Typical integration flow
//!
//! 1. Build a [`CheckInput`] with repository root, target diff, and options.
//! 2. Call [`check_workspace`] to produce a [`CheckOutput`] report.
//! 3. For a specific probe id, call [`explain_finding`] to inspect evidence.
//! 4. Use [`collect_context`] when you need neighboring source context for UX.
//!
//! The CLI wraps these same APIs and renders the resulting model in human,
//! JSON, and annotation formats.
//!
//! # Output and compatibility
//!
//! [`CheckOutput`] and the domain re-exports in this crate are the intended
//! integration surface for editor tooling, CI automation, and custom reporting.
//! Prefer consuming these typed values over parsing CLI output so integrations
//! remain resilient as human-readable formatting evolves.
//!
//! # Exposure language
//!
//! `ripr` reports static exposure estimates such as [`ExposureClass::Exposed`]
//! and [`ExposureClass::WeaklyExposed`]. Findings can also remain unknown when
//! static evidence is incomplete. These results are intended to guide targeted
//! test intent, not to claim runtime mutation outcomes.
//!
//! # Quick start
//!
//! ```no_run
//! use ripr::{CheckInput, check_workspace};
//! use std::path::PathBuf;
//!
//! let report = check_workspace(CheckInput {
//! root: PathBuf::from("."),
//! ..CheckInput::default()
//! })?;
//!
//! println!("findings: {}", report.findings.len());
//! # Ok::<(), String>(())
//! ```
//!
// Kept public for compatibility; prefer the crate-root re-exports for new
// integrations.
// Kept public for compatibility; prefer the crate-root re-exports for new
// integrations.
// Kept public for compatibility with existing embedders.
pub
// Kept public for compatibility; prefer the crate-root domain type re-exports
// for new integrations.
// Kept public for compatibility with experimental editor integrations.
// Kept public for compatibility with existing render integrations.
/// Analyze a workspace diff using the default RIPR static pipeline.
pub use ;
/// Domain model types exposed as part of the stable public contract.
pub use ;