pub trait OptimizerPlugin: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn version(&self) -> &str;
fn description(&self) -> &str;
fn initialize(&mut self, config: &PluginConfig) -> Result<(), PluginError>;
fn suggest(
&mut self,
history: &OptimizationHistory,
constraints: &ParameterConstraints,
) -> Result<HashMap<String, Float>, PluginError>;
fn observe(
&mut self,
parameters: &HashMap<String, Float>,
objective_value: Float,
metadata: Option<&HashMap<String, String>>,
) -> Result<(), PluginError>;
fn should_stop(&self, history: &OptimizationHistory) -> bool;
fn get_statistics(&self) -> Result<HashMap<String, Float>, PluginError>;
fn shutdown(&mut self) -> Result<(), PluginError>;
fn as_any(&self) -> &dyn Any;
fn as_any_mut(&mut self) -> &mut dyn Any;
}Expand description
Core trait for optimization plugins
Required Methods§
Sourcefn description(&self) -> &str
fn description(&self) -> &str
Plugin description
Sourcefn initialize(&mut self, config: &PluginConfig) -> Result<(), PluginError>
fn initialize(&mut self, config: &PluginConfig) -> Result<(), PluginError>
Initialize the plugin
Sourcefn suggest(
&mut self,
history: &OptimizationHistory,
constraints: &ParameterConstraints,
) -> Result<HashMap<String, Float>, PluginError>
fn suggest( &mut self, history: &OptimizationHistory, constraints: &ParameterConstraints, ) -> Result<HashMap<String, Float>, PluginError>
Suggest next hyperparameter configuration to evaluate
Sourcefn observe(
&mut self,
parameters: &HashMap<String, Float>,
objective_value: Float,
metadata: Option<&HashMap<String, String>>,
) -> Result<(), PluginError>
fn observe( &mut self, parameters: &HashMap<String, Float>, objective_value: Float, metadata: Option<&HashMap<String, String>>, ) -> Result<(), PluginError>
Update plugin state with new observation
Sourcefn should_stop(&self, history: &OptimizationHistory) -> bool
fn should_stop(&self, history: &OptimizationHistory) -> bool
Check if optimization should stop
Sourcefn get_statistics(&self) -> Result<HashMap<String, Float>, PluginError>
fn get_statistics(&self) -> Result<HashMap<String, Float>, PluginError>
Get plugin-specific statistics
Sourcefn shutdown(&mut self) -> Result<(), PluginError>
fn shutdown(&mut self) -> Result<(), PluginError>
Clean up resources
Sourcefn as_any_mut(&mut self) -> &mut dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
Mutable downcast