use serde::{Deserialize, Serialize};
use std::collections::HashMap;
use std::net::SocketAddr;
use std::time::Duration;
use super::types::*;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct NetworkPerformanceMetrics {
pub latency: Duration,
pub bandwidth: f64,
pub packet_loss: f64,
pub jitter: Duration,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct DistributedResourceUtilization {
pub cpu_usage: f64,
pub memory_usage: f64,
pub network_usage: f64,
pub quantum_resource_usage: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct FaultToleranceMetrics {
pub failure_detection_time: Duration,
pub recovery_time: Duration,
pub availability: f64,
pub reliability: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct DistributedCostAnalysis {
pub computational_cost: f64,
pub network_cost: f64,
pub storage_cost: f64,
pub total_cost: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct SecurityAuditTrail {
pub authentication_events: Vec<String>,
pub authorization_events: Vec<String>,
pub security_violations: Vec<String>,
pub encryption_events: Vec<String>,
}