use serde::{Deserialize, Serialize};
use utoipa::ToSchema;
pub const MODERATE_MEMORY_PRESSURE_THRESHOLD: f64 = 0.85;
pub const HIGH_MEMORY_PRESSURE_THRESHOLD: f64 = 0.90;
pub const CRITICAL_MEMORY_PRESSURE_THRESHOLD: f64 = 0.95;
#[derive(
Debug, Default, Clone, Copy, Eq, PartialEq, PartialOrd, Ord, Serialize, Deserialize, ToSchema,
)]
#[repr(u8)]
#[serde(rename_all = "snake_case")]
pub enum MemoryPressure {
#[default]
Low = 0,
Moderate = 1,
High = 2,
Critical = 3,
}
impl TryFrom<u8> for MemoryPressure {
type Error = ();
fn try_from(value: u8) -> Result<Self, Self::Error> {
match value {
0 => Ok(MemoryPressure::Low),
1 => Ok(MemoryPressure::Moderate),
2 => Ok(MemoryPressure::High),
3 => Ok(MemoryPressure::Critical),
_ => Err(()),
}
}
}