quantrs2_device/cloud/provider_optimizations/
traits.rs1use super::types::{
4 CostEstimate, ExecutionConfig, OptimizationRecommendation, OptimizationStrategy,
5 PerformancePrediction, WorkloadSpec,
6};
7use crate::prelude::CloudProvider;
8use crate::DeviceResult;
9
10pub trait ProviderOptimizer {
12 fn optimize_workload(
14 &self,
15 workload: &WorkloadSpec,
16 ) -> DeviceResult<OptimizationRecommendation>;
17
18 fn get_provider(&self) -> CloudProvider;
20
21 fn get_optimization_strategies(&self) -> Vec<OptimizationStrategy>;
23
24 fn predict_performance(
26 &self,
27 workload: &WorkloadSpec,
28 config: &ExecutionConfig,
29 ) -> DeviceResult<PerformancePrediction>;
30
31 fn estimate_cost(
33 &self,
34 workload: &WorkloadSpec,
35 config: &ExecutionConfig,
36 ) -> DeviceResult<CostEstimate>;
37}
38
39pub trait FeatureExtractor: Send + Sync {}
43
44pub trait ClusteringEngine: Send + Sync {}
46
47pub trait SimilarityMetric: Send + Sync {}
49
50pub trait NearestNeighborEngine: Send + Sync {}
52
53pub trait PatternAnalysisAlgorithm: Send + Sync {}
55
56pub trait RecommendationAlgorithm: Send + Sync {}
58
59pub trait LearningAlgorithm: Send + Sync {}
61
62pub trait UpdateStrategy: Send + Sync {}
64
65pub trait FeedbackValidator: Send + Sync {}
67
68pub trait FeedbackAnalyzer: Send + Sync {}
70
71pub trait FeedbackAggregator: Send + Sync {}