pub struct PythonHookAdapter { /* private fields */ }Expand description
Handler for one hook of one Python plugin.
Holds the hook name because a single plugin object serves every hook it declared, and the worker needs to be told which one to run.
Implementations§
Source§impl PythonHookAdapter
impl PythonHookAdapter
pub fn new(plugin: Arc<IsolatedPythonPlugin>, hook_name: &'static str) -> Self
Trait Implementations§
Source§impl AnyHookHandler for PythonHookAdapter
impl AnyHookHandler for PythonHookAdapter
Source§fn invoke<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
payload: &'life1 dyn PluginPayload,
extensions: &'life2 Extensions,
ctx: &'life3 mut PluginContext,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn Any + Send + Sync>, Box<PluginError>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn invoke<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
payload: &'life1 dyn PluginPayload,
extensions: &'life2 Extensions,
ctx: &'life3 mut PluginContext,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn Any + Send + Sync>, Box<PluginError>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Serialize, send, and convert one hook invocation.
Every failure returns a PluginError and stops there — the executor
applies the plugin’s configured on_error policy (fail / ignore /
disable). This host deliberately does not interpret that policy itself;
doing so would double-apply it.
Source§fn hook_type_name(&self) -> &'static str
fn hook_type_name(&self) -> &'static str
The hook family the declared name belongs to, so the registry’s family check accepts this handler. The adapter forwards whatever payload the hook carries, so it serves the family of any name it is declared on. A name with no family in the hook metadata reports itself, which the registry accepts.