use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "kebab-case")]
pub struct NodeStatus {
pub cpu: f64,
pub memory: MemoryInfo,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub swap: Option<MemoryInfo>,
pub uptime: u64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kversion: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub loadavg: Option<[f64; 3]>,
pub current_kernel: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub wait: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cpuinfo: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pve_version: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct MemoryInfo {
pub total: u64,
pub used: u64,
pub free: u64,
}