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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
[]
= "crap-core"
= "0.5.0"
= true
= true
= true
= true
= true
= "Language-agnostic foundation for the CRAP analyzer family — domain types, port traits, and shared invariants for crap4rs / future crap4ts."
= ["crap", "complexity", "coverage", "testing", "quality"]
= ["development-tools::testing"]
= "README.md"
[]
= "crap_core"
= "src/lib.rs"
[]
# Exposes `crap_core::test_strategies::*` (proptest generators + the
# `DummyParseDiagnostic` stub) to downstream adapter tests. Production
# builds leave this off so `proptest` is not pulled into the prod tree.
# crap4rs's `[dev-dependencies]` opts in.
= ["dep:proptest"]
[]
# Serialization — domain types derive Serialize/Deserialize so reporters
# in crap4rs and future siblings (crap4ts) can hand them to any serde
# format without translation.
= { = true }
# JSON envelope rendering (reporters/json + reporters/sarif), baseline
# envelope load (adapters/baseline). Relocated from crap4rs in S3.
= { = true }
# Config file parsing (adapters/config). Relocated from crap4rs in S3.
= { = true }
# Error tagging on `CrapError`, `view::CoverageRangeError`, and the
# adapter error families. Pure typed errors, no I/O.
= { = true }
# anyhow::Result threads through adapters/config, adapters/diff, and
# core::walker — context propagation for IO/parse failures. Relocated
# from crap4rs in S3.
= { = true }
# Filesystem walker (core::walker — relocated from crap4rs in S3).
= { = true }
# Hunk-header / @@-line parsing in adapters/diff (relocated from
# crap4rs in S3).
= { = true }
# Terminal table reporter (relocated from crap4rs in S3).
= { = true }
# ANSI colorization for the terminal reporter (relocated from crap4rs
# in S3).
= { = true }
# CLI argument parsing (cli/mod.rs — relocated from crap4rs in S4).
# `clap_complete{,_nushell}` back the `completions` subcommand. The
# concrete adapter binaries (crap4rs, future crap4ts) consume `cli::run`
# but do not invoke clap themselves; clap lives here so cli/mod.rs
# stays self-contained after the relocation.
= { = true }
= { = true }
= { = true }
# Glob matching for per-path threshold overrides — used by
# `core::ThresholdResolver` (relocated from crap4rs in S4). Pure data
# match logic; satisfies AST-purity.
= { = true }
# Compile-time templates for `adapters::reporters::{html, markdown}`
# (crap-rs#260). Templates live under `crates/crap-core/templates/`
# and are checked at compile time by the `#[derive(Template)]` macro.
# Pure rendering — no I/O.
= { = true }
# Optional — only pulled in by the `test-helpers` feature. The
# `test_strategies` module imports `proptest::prelude::*`; gating it
# behind a feature keeps the prod dependency tree clean.
= { = true, = true }
[]
# `proptest` powers the property tests interleaved through the domain
# modules; `pretty_assertions` improves diff output.
= { = true }
= { = true }
# Adapter tests construct temp dirs / files for baseline + diff +
# walker fixtures.
= { = true }
# Cross-crate binary invocation: tests/wire_envelope_snapshot.rs runs
# the crap4rs binary across crate boundaries. `env!("CARGO_BIN_EXE_*")`
# is only set for tests inside the bin's own crate, so assert_cmd's
# workspace-aware `Command::cargo_bin("crap4rs")` is required.
= { = true }
= { = true }