pub trait PluginRpcHandler<R: Reactor = TokioReactor>:
Send
+ Sync
+ 'static {
// Required methods
fn list_plugins(&self) -> Vec<Value>;
fn load_plugin(&self, path: &str) -> Result<Value, String>;
fn unload_plugin(&self, name: &str) -> Result<(), String>;
fn reload_plugin(&self, name: &str) -> Result<Value, String>;
fn spawn_actor(
&self,
type_name: &str,
config: &[u8],
) -> Result<Box<dyn Actor<R>>, String>;
}Expand description
Extension point for plugin management RPCs.
Implement this trait in the application layer (e.g., wrapping a
PluginRegistry from pd-plugin) and inject it into EngineConfig to
enable plugin.* control-plane methods. When None, those methods
return a “not implemented” error.
Required Methods§
Sourcefn list_plugins(&self) -> Vec<Value>
fn list_plugins(&self) -> Vec<Value>
List all currently loaded plugins.
Sourcefn load_plugin(&self, path: &str) -> Result<Value, String>
fn load_plugin(&self, path: &str) -> Result<Value, String>
Load a plugin from the given file path. Returns plugin info on success.