quantrs2_device/quantum_network/
teleportation.rs1use serde::{Deserialize, Serialize};
4use std::collections::HashMap;
5use std::time::Duration;
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct StatePreparationConfig {
9 pub preparation_method: String,
10 pub state_fidelity: f64,
11 pub verification_protocol: String,
12}
13
14impl Default for StatePreparationConfig {
15 fn default() -> Self {
16 Self {
17 preparation_method: "direct".to_string(),
18 state_fidelity: 0.99,
19 verification_protocol: "process_tomography".to_string(),
20 }
21 }
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize)]
25pub struct TeleportationMeasurementConfig {
26 pub measurement_basis: String,
27 pub measurement_efficiency: f64,
28 pub detection_probability: f64,
29 pub timing_precision: Duration,
30}
31
32impl Default for TeleportationMeasurementConfig {
33 fn default() -> Self {
34 Self {
35 measurement_basis: "Bell".to_string(),
36 measurement_efficiency: 0.95,
37 detection_probability: 0.9,
38 timing_precision: Duration::from_nanos(100),
39 }
40 }
41}
42
43#[derive(Debug, Clone, Serialize, Deserialize)]
44pub struct TeleportationClassicalConfig {
45 pub communication_channel: String,
46 pub message_encoding: String,
47 pub compression_enabled: bool,
48}
49
50impl Default for TeleportationClassicalConfig {
51 fn default() -> Self {
52 Self {
53 communication_channel: "optical".to_string(),
54 message_encoding: "binary".to_string(),
55 compression_enabled: true,
56 }
57 }
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
61pub struct TeleportationFidelityConfig {
62 pub minimum_fidelity: f64,
63 pub average_fidelity_target: f64,
64 pub fidelity_estimation_method: String,
65 pub verification_shots: u32,
66}
67
68impl Default for TeleportationFidelityConfig {
69 fn default() -> Self {
70 Self {
71 minimum_fidelity: 0.9,
72 average_fidelity_target: 0.95,
73 fidelity_estimation_method: "process_tomography".to_string(),
74 verification_shots: 1000,
75 }
76 }
77}