quantrs2_device/quantum_network/
monitoring.rs1use 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}