pub struct PluginDecisionExecutor { /* private fields */ }Expand description
Bridge from the source-level crate::PluginRegistry to native evidence.
The request provider remains host-owned because an action ID is neither an authorization grant nor plugin input. The registry returns only recorder- owned evidence, and the regular adapter provenance checks still apply before any knowledge write. A successful plugin invocation is not an outcome or a finding.
Implementations§
Source§impl PluginDecisionExecutor
impl PluginDecisionExecutor
Sourcepub fn new(
registry: Arc<PluginRegistry>,
plugin_id: impl Into<String>,
requests: Arc<dyn PluginExecutionRequestProvider>,
) -> Result<Self, DecisionExecutorError>
pub fn new( registry: Arc<PluginRegistry>, plugin_id: impl Into<String>, requests: Arc<dyn PluginExecutionRequestProvider>, ) -> Result<Self, DecisionExecutorError>
Creates a bridge for one registered plugin identity.
Trait Implementations§
Source§impl DecisionActionExecutor for PluginDecisionExecutor
impl DecisionActionExecutor for PluginDecisionExecutor
Source§fn execute<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 DecisionExecutionRequest,
) -> Pin<Box<dyn Future<Output = Result<Vec<Evidence>, DecisionExecutorError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn execute<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 DecisionExecutionRequest,
) -> Pin<Box<dyn Future<Output = Result<Vec<Evidence>, DecisionExecutorError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Executes one semantic action request and returns immutable observations only. Read more
Source§fn execution_class(&self) -> DecisionExecutionClass
fn execution_class(&self) -> DecisionExecutionClass
Returns how this executor is driven. Defaults to
DecisionExecutionClass::TransportBound so existing executors keep
their current transport-accounted execution path unchanged.Source§fn supports_payload_strategy(&self, _strategy: &PayloadStrategyRef) -> bool
fn supports_payload_strategy(&self, _strategy: &PayloadStrategyRef) -> bool
Returns whether this executor can materialize an exact strategy revision. Read more
Source§fn execute_with_snapshot<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: &'life1 DecisionExecutionRequest,
snapshot: &'life2 KnowledgeSnapshot,
) -> Pin<Box<dyn Future<Output = Result<Vec<Evidence>, DecisionExecutorError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn execute_with_snapshot<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: &'life1 DecisionExecutionRequest,
snapshot: &'life2 KnowledgeSnapshot,
) -> Pin<Box<dyn Future<Output = Result<Vec<Evidence>, DecisionExecutorError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Executes a
DecisionExecutionClass::LocalKnowledge action from an
immutable subject-scoped snapshot, returning immutable observations under
the same provenance contract as execute. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for PluginDecisionExecutor
impl !UnwindSafe for PluginDecisionExecutor
impl Freeze for PluginDecisionExecutor
impl Send for PluginDecisionExecutor
impl Sync for PluginDecisionExecutor
impl Unpin for PluginDecisionExecutor
impl UnsafeUnpin for PluginDecisionExecutor
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more