quantrs2_device/unified_benchmarking/
types.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
7pub enum QuantumPlatform {
8 IBMQuantum {
9 device_name: String,
10 hub: Option<String>,
11 },
12 AWSBraket {
13 device_arn: String,
14 region: String,
15 },
16 AzureQuantum {
17 target_id: String,
18 workspace: String,
19 },
20 IonQ {
21 device_name: String,
22 },
23 Rigetti {
24 device_name: String,
25 },
26 GoogleQuantumAI {
27 device_name: String,
28 },
29 Custom {
30 platform_id: String,
31 endpoint: String,
32 },
33}
34
35#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
37pub enum BaselineMetric {
38 Fidelity,
39 ExecutionTime,
40 ErrorRate,
41 Cost,
42 Throughput,
43}
44
45#[derive(Debug, Clone, Serialize, Deserialize)]
47pub struct BaselineMetricValue {
48 pub metric: BaselineMetric,
49 pub value: f64,
50 pub confidence_interval: (f64, f64),
51 pub measurement_count: usize,
52}
53
54#[derive(Debug, Clone, Serialize, Deserialize)]
56pub struct PerformanceBaseline {
57 pub platform: QuantumPlatform,
58 pub metrics: Vec<BaselineMetricValue>,
59 pub last_updated: std::time::SystemTime,
60 pub version: String,
61}