1pub mod advisory;
4pub mod baseline;
5#[cfg(feature = "deep")]
6pub mod deep;
7pub mod finding;
8mod functions;
9pub mod health_score;
10pub mod impact;
11pub mod ingest;
12pub mod markdown;
13pub mod pattern_baseline;
14#[cfg(feature = "deep")]
15pub mod reachability;
16pub mod refactor_map;
17pub mod report;
18pub mod rule_registry;
19pub mod rules;
20pub mod sarif;
21pub mod suppression;
22#[cfg(test)]
23mod test_util;
24
25#[derive(Clone, Copy, Debug, Eq, PartialEq)]
27pub enum AnalysisTier {
28 Fast,
29 Deep,
30}
31
32impl AnalysisTier {
33 pub const fn is_available(self) -> bool {
35 match self {
36 Self::Fast => true,
37 Self::Deep => cfg!(feature = "deep"),
38 }
39 }
40}
41
42#[cfg(test)]
43mod tests {
44 use super::AnalysisTier;
45
46 #[test]
47 fn fast_tier_is_always_available() {
48 assert!(AnalysisTier::Fast.is_available());
49 }
50
51 #[test]
52 fn deep_tier_matches_feature_flag() {
53 assert_eq!(AnalysisTier::Deep.is_available(), cfg!(feature = "deep"));
54 }
55}