Mountain/IPC/Common/HealthStatus/
HealthIssue.rs1
2use serde::{Deserialize, Serialize};
8
9use crate::IPC::Common::HealthStatus::SeverityLevel;
10
11#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
12pub enum Enum {
13 HighLatency(String),
14
15 MemoryPressure(String),
16
17 ConnectionLoss(String),
18
19 QueueOverflow(String),
20
21 SecurityViolation(String),
22
23 PerformanceDegradation(String),
24
25 Custom(String),
26}
27
28impl Enum {
29 pub fn Severity(&self) -> SeverityLevel::Enum {
30 match self {
31 Enum::HighLatency(_) => SeverityLevel::Enum::Medium,
32
33 Enum::MemoryPressure(_) => SeverityLevel::Enum::Medium,
34
35 Enum::ConnectionLoss(_) => SeverityLevel::Enum::High,
36
37 Enum::QueueOverflow(_) => SeverityLevel::Enum::High,
38
39 Enum::SecurityViolation(_) => SeverityLevel::Enum::Critical,
40
41 Enum::PerformanceDegradation(_) => SeverityLevel::Enum::Medium,
42
43 Enum::Custom(_) => SeverityLevel::Enum::Low,
44 }
45 }
46
47 pub fn Description(&self) -> &str {
48 match self {
49 Enum::HighLatency(D)
50 | Enum::MemoryPressure(D)
51 | Enum::ConnectionLoss(D)
52 | Enum::QueueOverflow(D)
53 | Enum::SecurityViolation(D)
54 | Enum::PerformanceDegradation(D)
55 | Enum::Custom(D) => D,
56 }
57 }
58}