Skip to main content

PluginRegistry

Trait PluginRegistry 

Source
pub trait PluginRegistry: Send + Sync {
    // Required methods
    fn register(&self, plugin: Arc<dyn Plugin>) -> Result<(), AgentError>;
    fn unregister(&self, name: &str) -> Result<bool, AgentError>;
    fn get(&self, name: &str) -> Option<Arc<dyn Plugin>>;
    fn list(&self) -> Vec<Arc<dyn Plugin>>;
    fn list_by_stage(&self, stage: PluginStage) -> Vec<Arc<dyn Plugin>>;
    fn contains(&self, name: &str) -> bool;
    fn count(&self) -> usize;

    // Provided method
    fn register_all(
        &self,
        plugins: Vec<Arc<dyn Plugin>>,
    ) -> Result<(), AgentError> { ... }
}
Expand description

插件注册中心

Required Methods§

Source

fn register(&self, plugin: Arc<dyn Plugin>) -> Result<(), AgentError>

注册插件

Source

fn unregister(&self, name: &str) -> Result<bool, AgentError>

移除插件

Source

fn get(&self, name: &str) -> Option<Arc<dyn Plugin>>

获取插件

Source

fn list(&self) -> Vec<Arc<dyn Plugin>>

列出所有插件

Source

fn list_by_stage(&self, stage: PluginStage) -> Vec<Arc<dyn Plugin>>

列出指定阶段的插件

Source

fn contains(&self, name: &str) -> bool

检查插件是否存在

Source

fn count(&self) -> usize

插件数量

Provided Methods§

Source

fn register_all(&self, plugins: Vec<Arc<dyn Plugin>>) -> Result<(), AgentError>

批量注册插件

Implementations on Foreign Types§

Source§

impl PluginRegistry for SimplePluginRegistry

Source§

fn register(&self, plugin: Arc<dyn Plugin>) -> Result<(), AgentError>

Source§

fn unregister(&self, name: &str) -> Result<bool, AgentError>

Source§

fn get(&self, name: &str) -> Option<Arc<dyn Plugin>>

Source§

fn list(&self) -> Vec<Arc<dyn Plugin>>

Source§

fn list_by_stage(&self, stage: PluginStage) -> Vec<Arc<dyn Plugin>>

Source§

fn contains(&self, name: &str) -> bool

Source§

fn count(&self) -> usize

Implementors§