pub mod net_info;
pub mod prober;
use chrono::{DateTime, Utc};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ConnectionStatus {
Ok,
Slow,
Disconnected,
}
impl std::fmt::Display for ConnectionStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
ConnectionStatus::Ok => write!(f, "OK"),
ConnectionStatus::Slow => write!(f, "SLOW"),
ConnectionStatus::Disconnected => write!(f, "DISCONNECTED"),
}
}
}
#[derive(Debug, Clone)]
pub struct PingResult {
#[allow(dead_code)]
pub target: String,
pub success: bool,
pub latency_ms: Option<f64>,
#[allow(dead_code)]
pub timestamp: DateTime<Utc>,
}
#[derive(Debug, Clone)]
pub struct NetworkStats {
pub avg_latency_ms: f64,
pub loss_pct: f64,
pub jitter_ms: f64,
pub status: ConnectionStatus,
pub timestamp: DateTime<Utc>,
}
#[derive(Debug, Clone)]
pub struct ProbeRound {
pub results: Vec<PingResult>,
#[allow(dead_code)]
pub timestamp: DateTime<Utc>,
}