Skip to main content

judge/
lib.rs

1//! Codebase intelligence for Rust workspaces.
2
3pub 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/// Analysis tier selected for a run.
26#[derive(Clone, Copy, Debug, Eq, PartialEq)]
27pub enum AnalysisTier {
28    Fast,
29    Deep,
30}
31
32impl AnalysisTier {
33    /// Returns whether this build contains the deep rust-analyzer integration.
34    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}