pub struct OwnedExecutionEngine<S: WorkflowState> { /* private fields */ }Expand description
拥有 State 所有权的执行引擎 — 用于 Parallel 分支等需要独立 State 的场景。
与 ExecutionEngine<'a, S> 的区别:
ExecutionEngine<'a, S>借用&'a mut S,用于主执行路径OwnedExecutionEngine<S>拥有S,用于需要独立 State 副本的场景(如 Parallel 分支)
Implementations§
Source§impl<S: WorkflowState> OwnedExecutionEngine<S>
impl<S: WorkflowState> OwnedExecutionEngine<S>
Sourcepub fn new(
state: S,
stream: Option<Arc<dyn StreamSink>>,
cancel: CancellationToken,
) -> Self
pub fn new( state: S, stream: Option<Arc<dyn StreamSink>>, cancel: CancellationToken, ) -> Self
创建拥有 State 所有权的 Engine(用于 Parallel 分支等场景)。
Sourcepub fn into_state(self) -> S
pub fn into_state(self) -> S
消费并返回最终状态。
pub fn state(&self) -> &S
pub fn state_mut(&mut self) -> &mut S
pub fn cancel_token(&self) -> &CancellationToken
pub fn stream_sink(&self) -> Option<Arc<dyn StreamSink>>
pub fn commit(&mut self)
Trait Implementations§
Source§impl<S: WorkflowState> ExecutionView<S> for OwnedExecutionEngine<S>
impl<S: WorkflowState> ExecutionView<S> for OwnedExecutionEngine<S>
Source§impl<S: WorkflowState> ExecutorState<S> for OwnedExecutionEngine<S>
impl<S: WorkflowState> ExecutorState<S> for OwnedExecutionEngine<S>
fn build_node_context(&mut self) -> NodeContext<'_, S>
fn build_leaf_context(&mut self) -> LeafContext<'_, S>
fn clone_state(&self) -> S
fn replace_state(&mut self, state: S)
fn apply_batch(&mut self, mutations: impl IntoIterator<Item = S::Mutation>)
fn take_control(&mut self) -> (NextAction, Option<ExecutionSignal>)
fn take_metadata(&mut self) -> NodeMetadata
fn take_flow_events(&mut self) -> Vec<FlowEvent>
Source§fn emit_flow_event(&mut self, event: FlowEvent)
fn emit_flow_event(&mut self, event: FlowEvent)
发射控制面 FlowEvent(Composite 节点如 ParallelNode 需要)。
Auto Trait Implementations§
impl<S> !RefUnwindSafe for OwnedExecutionEngine<S>
impl<S> !UnwindSafe for OwnedExecutionEngine<S>
impl<S> Freeze for OwnedExecutionEngine<S>where
S: Freeze,
impl<S> Send for OwnedExecutionEngine<S>
impl<S> Sync for OwnedExecutionEngine<S>
impl<S> Unpin for OwnedExecutionEngine<S>
impl<S> UnsafeUnpin for OwnedExecutionEngine<S>where
S: UnsafeUnpin,
Blanket Implementations§
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