Trait PluginRegistry

Source
pub trait PluginRegistry: Send + Sync {
    // Required methods
    fn register_plugin(
        &mut self,
        manifest: PluginManifest,
        wasm_bytes: Vec<u8>,
    ) -> Result<()>;
    fn unregister_plugin(&mut self, plugin_id: &str) -> Result<()>;
    fn get_manifest(&self, plugin_id: &str) -> Result<&PluginManifest>;
    fn list_plugins(&self) -> Vec<&PluginManifest>;
    fn search_plugins(&self, query: &PluginQuery) -> Vec<&PluginManifest>;
    fn get_dependencies(&self, plugin_id: &str) -> Result<Vec<&PluginManifest>>;
}
Expand description

Plugin registry for managing plugins

Required Methods§

Source

fn register_plugin( &mut self, manifest: PluginManifest, wasm_bytes: Vec<u8>, ) -> Result<()>

Register a new plugin

Source

fn unregister_plugin(&mut self, plugin_id: &str) -> Result<()>

Unregister a plugin

Source

fn get_manifest(&self, plugin_id: &str) -> Result<&PluginManifest>

Get plugin manifest

Source

fn list_plugins(&self) -> Vec<&PluginManifest>

List all registered plugins

Source

fn search_plugins(&self, query: &PluginQuery) -> Vec<&PluginManifest>

Search plugins by criteria

Source

fn get_dependencies(&self, plugin_id: &str) -> Result<Vec<&PluginManifest>>

Get plugin dependencies

Implementors§