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§
Sourcefn update_ui(
&mut self,
ctx: &Context,
ui: &mut Ui,
plugin_ctx: &PluginInstanceContext,
)
fn update_ui( &mut self, ctx: &Context, ui: &mut Ui, plugin_ctx: &PluginInstanceContext, )
更新UI(事件驱动) 当前端用户交互或需要更新UI时调用
Sourcefn on_mount(
&mut self,
plugin_ctx: &PluginInstanceContext,
) -> Result<(), Box<dyn Error>>
fn on_mount( &mut self, plugin_ctx: &PluginInstanceContext, ) -> Result<(), Box<dyn Error>>
插件挂载时调用
Sourcefn on_dispose(
&mut self,
plugin_ctx: &PluginInstanceContext,
) -> Result<(), Box<dyn Error>>
fn on_dispose( &mut self, plugin_ctx: &PluginInstanceContext, ) -> Result<(), Box<dyn Error>>
插件卸载时调用
Sourcefn on_connect(
&mut self,
plugin_ctx: &PluginInstanceContext,
) -> Result<(), Box<dyn Error>>
fn on_connect( &mut self, plugin_ctx: &PluginInstanceContext, ) -> Result<(), Box<dyn Error>>
连接时调用
Sourcefn on_disconnect(
&mut self,
plugin_ctx: &PluginInstanceContext,
) -> Result<(), Box<dyn Error>>
fn on_disconnect( &mut self, plugin_ctx: &PluginInstanceContext, ) -> Result<(), Box<dyn Error>>
断开连接时调用
Sourcefn handle_message(
&mut self,
message: &str,
plugin_ctx: &PluginInstanceContext,
) -> Result<String, Box<dyn Error>>
fn handle_message( &mut self, message: &str, plugin_ctx: &PluginInstanceContext, ) -> Result<String, Box<dyn Error>>
处理消息
Provided Methods§
Sourcefn initialize(
&mut self,
callbacks: HostCallbacks,
metadata: PluginMetadata,
) -> Result<PluginInstanceContext, Box<dyn Error>>
fn initialize( &mut self, callbacks: HostCallbacks, metadata: PluginMetadata, ) -> Result<PluginInstanceContext, Box<dyn Error>>
插件初始化时调用(在挂载之前,用于创建插件上下文) 返回插件实例上下文,包含所有实例相关的状态
Sourcefn get_metadata<'a>(
&self,
plugin_ctx: &'a PluginInstanceContext,
) -> &'a PluginMetadata
fn get_metadata<'a>( &self, plugin_ctx: &'a PluginInstanceContext, ) -> &'a PluginMetadata
获取插件元数据