Skip to main content

PluginRegistry

Trait PluginRegistry 

Source
pub trait PluginRegistry: Send + Sync {
    // Required methods
    fn register(&self, plugin: Arc<dyn Plugin>) -> AgentResult<()>;
    fn unregister(&self, name: &str) -> AgentResult<bool>;
    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>>) -> AgentResult<()> { ... }
}
Expand description

插件注册中心

Required Methods§

Source

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

注册插件

Source

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

移除插件

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>>) -> AgentResult<()>

批量注册插件

Implementors§