quantrs2_device/performance_dashboard/
visualization.rs1use serde::{Deserialize, Serialize};
4use std::collections::HashMap;
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct VisualizationConfig {
9 pub refresh_rate: u64,
11 pub chart_types: Vec<ChartType>,
13 pub layout_config: LayoutConfig,
15 pub theme_config: ThemeConfig,
17 pub interactive_config: InteractiveConfig,
19}
20
21#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
22pub enum ChartType {
23 TimeSeries,
24 Histogram,
25 HeatMap,
26 ScatterPlot,
27 BarChart,
28 BoxPlot,
29 ViolinPlot,
30 NetworkGraph,
31 Sankey,
32 Gauge,
33 Table,
34 Custom(String),
35}
36
37#[derive(Debug, Clone, Serialize, Deserialize)]
38pub struct LayoutConfig {
39 pub grid_layout: GridLayout,
40 pub responsive_design: bool,
41 pub panel_configuration: Vec<PanelConfig>,
42}
43
44#[derive(Debug, Clone, Serialize, Deserialize)]
45pub struct ThemeConfig {
46 pub color_scheme: ColorScheme,
47 pub dark_mode: bool,
48 pub custom_styling: HashMap<String, String>,
49}
50
51#[derive(Debug, Clone, Serialize, Deserialize)]
52pub struct InteractiveConfig {
53 pub enable_drill_down: bool,
54 pub enable_filtering: bool,
55 pub enable_zooming: bool,
56 pub enable_real_time_updates: bool,
57}
58
59#[derive(Debug, Clone, Serialize, Deserialize)]
60pub struct GridLayout {
61 pub rows: usize,
62 pub columns: usize,
63 pub gap_size: usize,
64}
65
66#[derive(Debug, Clone, Serialize, Deserialize)]
67pub struct PanelConfig {
68 pub panel_id: String,
69 pub chart_type: ChartType,
70 pub data_source: String,
71 pub position: (usize, usize),
72 pub size: (usize, usize),
73}
74
75#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
76pub enum ColorScheme {
77 Default,
78 Light,
79 Dark,
80 HighContrast,
81 Custom(Vec<String>),
82}