Trait Provider

Source
pub trait Provider: Send + Sync {
    // Required methods
    fn name(&self) -> &str;
    fn version(&self) -> &str;
    fn features(&self) -> Vec<String>;
    fn feature_operations(&self, feature: &str) -> ProviderResult<Vec<String>>;
    fn execute_operation(
        &self,
        feature: &str,
        operation: &str,
        args: HashMap<String, Value>,
        context: &dyn ProviderContext,
    ) -> ProviderResult<Value>;
    fn initialize(
        &mut self,
        context: &dyn ProviderContext,
    ) -> ProviderResult<()>;
    fn shutdown(&mut self, context: &dyn ProviderContext) -> ProviderResult<()>;

    // Provided method
    fn supports_feature(&self, feature: &str) -> bool { ... }
}
Expand description

Provider capability trait

Required Methods§

Source

fn name(&self) -> &str

Get provider name

Source

fn version(&self) -> &str

Get provider version

Source

fn features(&self) -> Vec<String>

Get supported features

Source

fn feature_operations(&self, feature: &str) -> ProviderResult<Vec<String>>

Get operations for a feature

Source

fn execute_operation( &self, feature: &str, operation: &str, args: HashMap<String, Value>, context: &dyn ProviderContext, ) -> ProviderResult<Value>

Execute an operation

Source

fn initialize(&mut self, context: &dyn ProviderContext) -> ProviderResult<()>

Initialize provider

Source

fn shutdown(&mut self, context: &dyn ProviderContext) -> ProviderResult<()>

Shutdown provider

Provided Methods§

Source

fn supports_feature(&self, feature: &str) -> bool

Check if provider supports a feature

Implementors§