quantrs2_device/unified_benchmarking/
types.rs

1//! Core types for the unified benchmarking system
2
3use serde::{Deserialize, Serialize};
4
5/// Quantum computing platforms
6#[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/// Performance baseline metrics
36#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
37pub enum BaselineMetric {
38    Fidelity,
39    ExecutionTime,
40    ErrorRate,
41    Cost,
42    Throughput,
43}
44
45/// Baseline metric values
46#[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/// Performance baseline data
55#[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}