lawkit_core/common/
risk.rs1#[derive(Debug, Clone, PartialEq)]
2pub enum RiskLevel {
3 Low, Medium, High, Critical, }
8
9impl std::fmt::Display for RiskLevel {
10 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11 match self {
12 RiskLevel::Low => write!(f, "Low"),
13 RiskLevel::Medium => write!(f, "Medium"),
14 RiskLevel::High => write!(f, "High"),
15 RiskLevel::Critical => write!(f, "Critical"),
16 }
17 }
18}
19
20impl RiskLevel {
21 pub fn from_p_value(p_value: f64) -> Self {
22 if p_value <= 0.01 {
23 RiskLevel::Critical
24 } else if p_value <= 0.05 {
25 RiskLevel::High
26 } else if p_value <= 0.1 {
27 RiskLevel::Medium
28 } else {
29 RiskLevel::Low
30 }
31 }
32
33 pub fn exit_code(&self) -> i32 {
34 match self {
35 RiskLevel::Low => 0,
36 RiskLevel::Medium => 0,
37 RiskLevel::High => 10,
38 RiskLevel::Critical => 11,
39 }
40 }
41}