quantrs2_device/quantum_network/
monitoring.rs

1//! Network monitoring and analytics
2
3use serde::{Deserialize, Serialize};
4use std::collections::HashMap;
5use std::time::Duration;
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct NetworkErrorModelConfig {
9    pub error_model_type: String,
10    pub error_parameters: HashMap<String, f64>,
11    pub temporal_correlation: f64,
12    pub spatial_correlation: f64,
13}
14
15impl Default for NetworkErrorModelConfig {
16    fn default() -> Self {
17        let mut error_parameters = HashMap::new();
18        error_parameters.insert("bit_flip_rate".to_string(), 0.01);
19        error_parameters.insert("phase_flip_rate".to_string(), 0.01);
20
21        Self {
22            error_model_type: "pauli".to_string(),
23            error_parameters,
24            temporal_correlation: 0.1,
25            spatial_correlation: 0.05,
26        }
27    }
28}
29
30#[derive(Debug, Clone, Serialize, Deserialize)]
31pub struct NetworkPerformanceMonitoringConfig {
32    pub performance_metrics: Vec<String>,
33    pub monitoring_interval: Duration,
34    pub real_time_monitoring: bool,
35    pub historical_data_retention: Duration,
36}
37
38impl Default for NetworkPerformanceMonitoringConfig {
39    fn default() -> Self {
40        Self {
41            performance_metrics: vec![
42                "latency".to_string(),
43                "throughput".to_string(),
44                "fidelity".to_string(),
45            ],
46            monitoring_interval: Duration::from_secs(1),
47            real_time_monitoring: true,
48            historical_data_retention: Duration::from_secs(3600),
49        }
50    }
51}