crap_core/adapters/mod.rs
1//! Language-agnostic adapters — IO and presentation layers that make
2//! no assumptions about the source language being analyzed.
3//!
4//! Four families live here:
5//! - **`baseline`**: loads a previously-emitted JSON envelope from disk
6//! so delta reporting can compare the current run against a prior one.
7//! - **`config`**: parses the adapter's TOML configuration (threshold
8//! overrides, view presets, exclude patterns).
9//! - **`diff`**: shells out to git to compute changed line ranges per
10//! file for `--diff <ref>` filtering.
11//! - **`reporters`**: render the analyzer output as JSON, Markdown,
12//! SARIF, HTML, CSV, terminal table, scorecard rows, or advice
13//! summary.
14//!
15//! Per-language adapters (e.g. `crap4rs::adapters::complexity`,
16//! `crap4rs::adapters::coverage`) live in their parent crate and pull
17//! `crap-core`'s ports / domain types as dependencies. The crap4rs v0.4
18//! public surface stays buildable through shim `pub use` re-exports in
19//! `crap4rs::adapters` (see crap4rs/src/lib.rs).
20
21pub mod baseline;
22pub mod config;
23pub mod diff;
24pub mod reporters;