pub trait PluginFactoryWrapper:
Debug
+ Send
+ Sync {
// Required methods
fn create_f32(
&self,
config: OptimizerConfig,
) -> Result<Box<dyn OptimizerPlugin<f32>>>;
fn create_f64(
&self,
config: OptimizerConfig,
) -> Result<Box<dyn OptimizerPlugin<f64>>>;
fn info(&self) -> PluginInfo;
fn validate_config(&self, config: &OptimizerConfig) -> Result<()>;
fn default_config(&self) -> OptimizerConfig;
fn config_schema(&self) -> ConfigSchema;
fn supports_type(&self, datatype: &DataType) -> bool;
// Provided method
fn capabilities(&self) -> PluginCapabilities { ... }
}Expand description
Wrapper trait for type-erased plugin factories
Required Methods§
Sourcefn create_f32(
&self,
config: OptimizerConfig,
) -> Result<Box<dyn OptimizerPlugin<f32>>>
fn create_f32( &self, config: OptimizerConfig, ) -> Result<Box<dyn OptimizerPlugin<f32>>>
Create optimizer with f32 precision
Sourcefn create_f64(
&self,
config: OptimizerConfig,
) -> Result<Box<dyn OptimizerPlugin<f64>>>
fn create_f64( &self, config: OptimizerConfig, ) -> Result<Box<dyn OptimizerPlugin<f64>>>
Create optimizer with f64 precision
Sourcefn info(&self) -> PluginInfo
fn info(&self) -> PluginInfo
Get factory information
Sourcefn validate_config(&self, config: &OptimizerConfig) -> Result<()>
fn validate_config(&self, config: &OptimizerConfig) -> Result<()>
Validate configuration
Sourcefn default_config(&self) -> OptimizerConfig
fn default_config(&self) -> OptimizerConfig
Get default configuration
Sourcefn config_schema(&self) -> ConfigSchema
fn config_schema(&self) -> ConfigSchema
Get configuration schema
Sourcefn supports_type(&self, datatype: &DataType) -> bool
fn supports_type(&self, datatype: &DataType) -> bool
Check if factory supports the given data type
Provided Methods§
Sourcefn capabilities(&self) -> PluginCapabilities
fn capabilities(&self) -> PluginCapabilities
Get the capabilities the produced optimizer declares. Backed by a
default so existing PluginFactoryWrapper implementors outside this
crate keep compiling; the default reports every capability absent
(PluginCapabilities::default() is all-false), which is the safe
direction to fail in for PluginQuery::required_capabilities
filtering – an unimplemented override under-promises rather than
over-promising what the plugin can do.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".