Trait PluginHandler

Source
pub trait PluginHandler: Send + Sync {
    // Required methods
    fn update_ui(
        &mut self,
        ctx: &Context,
        ui: &mut Ui,
        plugin_ctx: &PluginInstanceContext,
    );
    fn on_mount(
        &mut self,
        plugin_ctx: &PluginInstanceContext,
    ) -> Result<(), Box<dyn Error>>;
    fn on_dispose(
        &mut self,
        plugin_ctx: &PluginInstanceContext,
    ) -> Result<(), Box<dyn Error>>;
    fn on_connect(
        &mut self,
        plugin_ctx: &PluginInstanceContext,
    ) -> Result<(), Box<dyn Error>>;
    fn on_disconnect(
        &mut self,
        plugin_ctx: &PluginInstanceContext,
    ) -> Result<(), Box<dyn Error>>;
    fn handle_message(
        &mut self,
        message: &str,
        plugin_ctx: &PluginInstanceContext,
    ) -> Result<String, Box<dyn Error>>;

    // Provided methods
    fn initialize(
        &mut self,
        callbacks: HostCallbacks,
        metadata: PluginMetadata,
    ) -> Result<PluginInstanceContext, Box<dyn Error>> { ... }
    fn get_metadata<'a>(
        &self,
        plugin_ctx: &'a PluginInstanceContext,
    ) -> &'a PluginMetadata { ... }
}
Expand description

插件处理器 trait 定义了插件的生命周期方法,使用上下文传递模式

Required Methods§

Source

fn update_ui( &mut self, ctx: &Context, ui: &mut Ui, plugin_ctx: &PluginInstanceContext, )

更新UI(事件驱动) 当前端用户交互或需要更新UI时调用

Source

fn on_mount( &mut self, plugin_ctx: &PluginInstanceContext, ) -> Result<(), Box<dyn Error>>

插件挂载时调用

Source

fn on_dispose( &mut self, plugin_ctx: &PluginInstanceContext, ) -> Result<(), Box<dyn Error>>

插件卸载时调用

Source

fn on_connect( &mut self, plugin_ctx: &PluginInstanceContext, ) -> Result<(), Box<dyn Error>>

连接时调用

Source

fn on_disconnect( &mut self, plugin_ctx: &PluginInstanceContext, ) -> Result<(), Box<dyn Error>>

断开连接时调用

Source

fn handle_message( &mut self, message: &str, plugin_ctx: &PluginInstanceContext, ) -> Result<String, Box<dyn Error>>

处理消息

Provided Methods§

Source

fn initialize( &mut self, callbacks: HostCallbacks, metadata: PluginMetadata, ) -> Result<PluginInstanceContext, Box<dyn Error>>

插件初始化时调用(在挂载之前,用于创建插件上下文) 返回插件实例上下文,包含所有实例相关的状态

Source

fn get_metadata<'a>( &self, plugin_ctx: &'a PluginInstanceContext, ) -> &'a PluginMetadata

获取插件元数据

Implementors§