use std::time::{Duration, SystemTime};
use super::types::{APIConfig, AccessControlConfig, ArchiveConfig, AuditConfig, BenchmarkConfig, CompressionConfig, ConfigMetadata, DebugConfig, EncryptionConfig, ExperimentalConfig, ExportImportConfig, ExtensionsConfig, HistoryConfig, IntegrationsConfig, MLConfig, MonitoringConfig, MultiObjectiveConfig, NotificationConfig, OptimizationConfig, ParameterTuningConfig, ProfilingConfig, QualityGatesConfig, SLAConfig, SecurityConfig, StorageConfig, ValidationConfig};
impl Default for OptimizationConfig {
fn default() -> Self {
Self {
metadata: ConfigMetadata::default(),
enable_ml_optimization: true,
enable_multi_objective: false,
enable_adaptive_optimization: true,
enable_realtime_optimization: false,
enable_performance_prediction: true,
enable_optimization_validation: true,
optimization_frequency: Duration::from_secs(60),
optimization_timeout: Duration::from_secs(300),
config_update_interval: Duration::from_secs(30),
monitoring_frequency: Duration::from_secs(10),
backup_frequency: Duration::from_secs(3600),
max_concurrent_optimizations: 4,
max_memory_usage: 2 * 1024 * 1024 * 1024,
max_cpu_usage: 0.8,
max_gpu_usage: 0.9,
thread_pool_size: 8,
worker_queue_size: 1000,
performance_threshold: 0.05,
quality_gates: QualityGatesConfig::default(),
benchmark_config: BenchmarkConfig::default(),
sla_config: SLAConfig::default(),
ml_config: MLConfig::default(),
multi_objective_config: MultiObjectiveConfig::default(),
parameter_tuning_config: ParameterTuningConfig::default(),
validation_config: ValidationConfig::default(),
monitoring_config: MonitoringConfig::default(),
history_config: HistoryConfig::default(),
storage_config: StorageConfig::default(),
compression_config: CompressionConfig::default(),
archive_config: ArchiveConfig::default(),
security_config: SecurityConfig::default(),
access_control_config: AccessControlConfig::default(),
audit_config: AuditConfig::default(),
encryption_config: EncryptionConfig::default(),
integrations_config: IntegrationsConfig::default(),
notification_config: NotificationConfig::default(),
api_config: APIConfig::default(),
export_import_config: ExportImportConfig::default(),
experimental_config: ExperimentalConfig::default(),
debug_config: DebugConfig::default(),
profiling_config: ProfilingConfig::default(),
extensions_config: ExtensionsConfig::default(),
}
}
}