use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct NodeAddrInfo {
pub id: String,
pub addrs: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct EndpointStats {
pub active_readers: usize,
pub active_writers: usize,
pub active_sessions: usize,
pub total_handles: usize,
pub pool_size: usize,
pub active_connections: usize,
pub active_requests: usize,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConnectionEvent {
pub peer_id: String,
pub connected: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PeerStats {
pub relay: bool,
pub relay_url: Option<String>,
pub paths: Vec<PathInfo>,
pub rtt_ms: Option<f64>,
pub bytes_sent: Option<u64>,
pub bytes_received: Option<u64>,
pub lost_packets: Option<u64>,
pub sent_packets: Option<u64>,
pub congestion_window: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PathInfo {
pub relay: bool,
pub addr: String,
pub active: bool,
}