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