use serde::{Deserialize, Serialize};
use std::collections::HashMap;
use std::time::Duration;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SyndromeDetectionConfig {
pub enable_parallel_detection: bool,
pub detection_rounds: usize,
pub stabilizer_measurement_shots: usize,
pub enable_syndrome_validation: bool,
pub validation_threshold: f64,
pub enable_error_correlation: bool,
pub enable_detection: bool,
pub detection_frequency: f64,
pub detection_methods: Vec<SyndromeDetectionMethod>,
pub pattern_recognition: PatternRecognitionConfig,
pub statistical_analysis: SyndromeStatisticsConfig,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum SyndromeDetectionMethod {
StandardStabilizer,
FastExtraction,
AdaptiveMeasurement,
MLPrediction,
CompressedSensing,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PatternRecognitionConfig {
pub enable_recognition: bool,
pub algorithms: Vec<PatternRecognitionAlgorithm>,
pub training_config: PatternTrainingConfig,
pub real_time_adaptation: bool,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum PatternRecognitionAlgorithm {
NeuralNetwork,
SupportVectorMachine,
RandomForest,
DeepLearning,
ConvolutionalNN,
RecurrentNN,
Custom(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PatternTrainingConfig {
pub training_size: usize,
pub validation_split: f64,
pub epochs: usize,
pub learning_rate: f64,
pub batch_size: usize,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SyndromeStatisticsConfig {
pub enable_statistics: bool,
pub methods: Vec<StatisticalMethod>,
pub confidence_level: f64,
pub data_retention_days: u32,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum StatisticalMethod {
HypothesisTesting,
DistributionFitting,
CorrelationAnalysis,
TimeSeriesAnalysis,
AnomalyDetection,
ClusterAnalysis,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FastExtractionConfig {
pub algorithm: FastExtractionAlgorithm,
pub parallel_processing: ParallelProcessingConfig,
pub resource_optimization: ResourceOptimizationConfig,
pub quality_control: QualityControlConfig,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum FastExtractionAlgorithm {
ParallelStabilizer,
PipelinedMeasurement,
CompressedSensing,
AdaptiveSampling,
HierarchicalExtraction,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ParallelProcessingConfig {
pub num_threads: usize,
pub load_balancing: LoadBalancingStrategy,
pub synchronization: SynchronizationMethod,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum LoadBalancingStrategy {
RoundRobin,
WorkStealing,
DynamicAssignment,
PerformanceBased,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum SynchronizationMethod {
Barrier,
LockFree,
MessagePassing,
SharedMemory,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ResourceOptimizationConfig {
pub memory_optimization: MemoryOptimizationConfig,
pub cpu_optimization: CPUOptimizationConfig,
pub io_optimization: IOOptimizationConfig,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MemoryOptimizationConfig {
pub enable_pooling: bool,
pub cache_optimization: CacheOptimizationConfig,
pub compression: CompressionConfig,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CacheOptimizationConfig {
pub cache_size: usize,
pub eviction_policy: CacheEvictionPolicy,
pub prefetching: PrefetchingStrategy,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum CacheEvictionPolicy {
LRU,
LFU,
FIFO,
Random,
Adaptive,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum PrefetchingStrategy {
None,
Sequential,
Stride,
Pattern,
Adaptive,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CompressionConfig {
pub enable_compression: bool,
pub algorithm: CompressionAlgorithm,
pub compression_level: u8,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum CompressionAlgorithm {
LZ4,
Zlib,
Zstd,
Custom(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CPUOptimizationConfig {
pub vectorization: VectorizationConfig,
pub instruction_scheduling: bool,
pub branch_optimization: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct VectorizationConfig {
pub enable_simd: bool,
pub vector_width: usize,
pub auto_vectorization: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct IOOptimizationConfig {
pub async_io: bool,
pub batching: BatchingConfig,
pub buffer_size: usize,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct BatchingConfig {
pub enable_batching: bool,
pub batch_size: usize,
pub batch_timeout: Duration,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct QualityControlConfig {
pub error_checking: ErrorCheckingConfig,
pub validation: ValidationConfig,
pub monitoring: MonitoringConfig,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ErrorCheckingConfig {
pub enable_checksums: bool,
pub redundancy_checking: bool,
pub error_correction: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ValidationConfig {
pub cross_validation: bool,
pub consistency_checks: Vec<ConsistencyCheck>,
pub validation_frequency: ValidationFrequency,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum ConsistencyCheck {
SyndromeConsistency,
StabilizerCommutation,
LogicalOperatorConsistency,
CodeDistanceVerification,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum ValidationFrequency {
Always,
Periodic(Duration),
OnError,
Manual,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MonitoringConfig {
pub performance_monitoring: PerformanceMonitoringConfig,
pub resource_monitoring: ResourceMonitoringConfig,
pub alerts: AlertConfig,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PerformanceMonitoringConfig {
pub latency_tracking: bool,
pub throughput_monitoring: bool,
pub accuracy_monitoring: bool,
pub historical_analysis: HistoricalAnalysisConfig,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct HistoricalAnalysisConfig {
pub enable_analysis: bool,
pub retention_period: Duration,
pub analysis_methods: Vec<AnalysisMethod>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum AnalysisMethod {
TrendAnalysis,
SeasonalAnalysis,
AnomalyDetection,
PerformanceRegression,
CapacityPlanning,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ResourceMonitoringConfig {
pub cpu_monitoring: bool,
pub memory_monitoring: bool,
pub io_monitoring: bool,
pub network_monitoring: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AlertConfig {
pub thresholds: HashMap<String, f64>,
pub channels: Vec<AlertChannel>,
pub escalation: EscalationConfig,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum AlertChannel {
Email,
SMS,
Dashboard,
Log,
Webhook,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EscalationConfig {
pub levels: Vec<EscalationLevel>,
pub timeouts: HashMap<String, Duration>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EscalationLevel {
pub name: String,
pub threshold: f64,
pub actions: Vec<EscalationAction>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum EscalationAction {
Notify,
AutoRemediate,
Manual,
Shutdown,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AdaptiveMeasurementConfig {
pub strategy: AdaptationStrategy,
pub learning: LearningConfig,
pub feedback_control: FeedbackControlConfig,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum AdaptationStrategy {
ErrorRateBased,
PerformanceBased,
ResourceBased,
MLBased,
HybridApproach,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LearningConfig {
pub algorithm: LearningAlgorithm,
pub learning_rate: f64,
pub training_frequency: Duration,
pub online_learning: bool,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum LearningAlgorithm {
ReinforcementLearning,
SupervisedLearning,
UnsupervisedLearning,
TransferLearning,
MetaLearning,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FeedbackControlConfig {
pub algorithm: ControlAlgorithm,
pub parameters: ControlParameters,
pub stability_analysis: StabilityAnalysisConfig,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum ControlAlgorithm {
PID,
ModelPredictiveControl,
AdaptiveControl,
RobustControl,
OptimalControl,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ControlParameters {
pub kp: f64,
pub ki: f64,
pub kd: f64,
pub additional_params: HashMap<String, f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct StabilityAnalysisConfig {
pub enable_analysis: bool,
pub methods: Vec<StabilityMethod>,
pub criteria: StabilityCriteria,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum StabilityMethod {
LyapunovAnalysis,
RouthHurwitz,
NyquistCriterion,
BodePlot,
RootLocus,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct StabilityCriteria {
pub stability_margin: f64,
pub phase_margin: f64,
pub gain_margin: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CompressedSensingConfig {
pub sensing_matrix: SensingMatrixConfig,
pub reconstruction: ReconstructionConfig,
pub sparsity: SparsityConfig,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SensingMatrixConfig {
pub matrix_type: SensingMatrixType,
pub dimensions: (usize, usize),
pub coherence: CoherenceConfig,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum SensingMatrixType {
Random,
Structured,
Circulant,
Toeplitz,
Fourier,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CoherenceConfig {
pub mutual_coherence: f64,
pub rip_constant: f64,
pub optimization: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ReconstructionConfig {
pub algorithm: ReconstructionAlgorithm,
pub optimization_params: OptimizationParams,
pub convergence: ConvergenceConfig,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum ReconstructionAlgorithm {
L1Minimization,
OrthogonalMatchingPursuit,
IterativeHardThresholding,
CompressiveSamplingMatchingPursuit,
SparseRecovery,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OptimizationParams {
pub lambda: f64,
pub step_size: f64,
pub max_iterations: usize,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ConvergenceConfig {
pub tolerance: f64,
pub criteria: ConvergenceCriteria,
pub early_stopping: bool,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum ConvergenceCriteria {
ResidualNorm,
ObjectiveFunction,
ParameterChange,
GradientNorm,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SparsityConfig {
pub sparsity_level: f64,
pub pattern: SparsityPattern,
pub adaptive_sparsity: bool,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum SparsityPattern {
Random,
Structured,
Clustered,
Hierarchical,
Adaptive,
}