quantrs2_device/performance_dashboard/
visualization.rs

1//! Visualization Configuration Types
2
3use serde::{Deserialize, Serialize};
4use std::collections::HashMap;
5
6/// Visualization configuration
7#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct VisualizationConfig {
9    /// Dashboard refresh rate in seconds
10    pub refresh_rate: u64,
11    /// Chart types to display
12    pub chart_types: Vec<ChartType>,
13    /// Layout configuration
14    pub layout_config: LayoutConfig,
15    /// Theme and styling
16    pub theme_config: ThemeConfig,
17    /// Interactive features
18    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}