Skip to main content

quantrs2_tytan/advanced_visualization/
functions.rs

1//! Auto-generated module
2//!
3//! 🤖 Generated with [SplitRS](https://github.com/cool-japan/splitrs)
4
5use std::collections::{HashMap, VecDeque};
6use std::time::{Duration, SystemTime};
7
8use super::types::{
9    AdvancedVisualizationManager, AnalysisError, ComparisonMetric, ComparisonResult,
10    ConvergenceAnalysis, ConvergenceData, DashboardData, Dataset, ExportFormat, InteractiveFeature,
11    PerformanceHistory, PerformancePrediction, PredictionError, QuantumState, RealTimeAnalysis,
12    RenderingQuality, StateVisualization, StatisticalTest, VisualizationConfig, VisualizationError,
13    WidgetConfig, WidgetRender, WidgetType,
14};
15
16pub trait StateVisualizationMethod: Send + Sync {
17    fn name(&self) -> &str;
18    fn visualize(&self, state: &QuantumState) -> Result<StateVisualization, VisualizationError>;
19    fn supported_dimensions(&self) -> Vec<usize>;
20    fn interactive_features(&self) -> Vec<InteractiveFeature>;
21}
22pub trait DashboardWidget: Send + Sync {
23    fn name(&self) -> &str;
24    fn widget_type(&self) -> WidgetType;
25    fn update(&mut self, data: &DashboardData) -> Result<(), VisualizationError>;
26    fn render(&self) -> Result<WidgetRender, VisualizationError>;
27    fn configure(&mut self, config: WidgetConfig) -> Result<(), VisualizationError>;
28}
29pub trait PerformancePredictor: Send + Sync {
30    fn name(&self) -> &str;
31    fn predict(
32        &self,
33        historical_data: &PerformanceHistory,
34    ) -> Result<PerformancePrediction, PredictionError>;
35    fn confidence(&self) -> f64;
36    fn prediction_horizon(&self) -> Duration;
37}
38pub trait ComparisonAlgorithm: Send + Sync {
39    fn name(&self) -> &str;
40    fn compare(&self, datasets: &[Dataset]) -> Result<ComparisonResult, AnalysisError>;
41    fn comparison_metrics(&self) -> Vec<ComparisonMetric>;
42    fn statistical_tests(&self) -> Vec<StatisticalTest>;
43}
44pub trait ConvergenceAnalyzer: Send + Sync {
45    fn name(&self) -> &str;
46    fn analyze(&self, data: &ConvergenceData) -> Result<ConvergenceAnalysis, AnalysisError>;
47    fn real_time_analysis(&self, data: &ConvergenceData)
48        -> Result<RealTimeAnalysis, AnalysisError>;
49}
50/// Create a default advanced visualization manager
51pub fn create_advanced_visualization_manager() -> AdvancedVisualizationManager {
52    AdvancedVisualizationManager::new(VisualizationConfig::default())
53}
54/// Create a lightweight visualization manager for testing
55pub fn create_lightweight_visualization_manager() -> AdvancedVisualizationManager {
56    let config = VisualizationConfig {
57        interactive_mode: false,
58        real_time_updates: false,
59        enable_3d_rendering: false,
60        quantum_state_viz: false,
61        performance_dashboard: false,
62        update_frequency: Duration::from_secs(1),
63        max_data_points: 1000,
64        export_formats: vec![ExportFormat::PNG],
65        rendering_quality: RenderingQuality::Low,
66        color_schemes: HashMap::new(),
67    };
68    AdvancedVisualizationManager::new(config)
69}