pub struct NodeContext<'a, S: WorkflowState = State> { /* private fields */ }Expand description
节点能力视图 — 向后兼容,节点能做的三件事:读 State、记录 Mutation、发射 Stream。
§设计原则
NodeContext 是 Runtime 的能力视图,不是 Runtime 的拥有者。
- 节点只借用,不拥有。零复制透传给子组件
- 禁止放入:RuntimeEventEmitter、TraceId、SpanId、GraphHandle、ExecutorConfig
- 不提供
state_mut()— 节点只能通过record()声明变更意图 - 组合节点(如 ParallelNode)使用
replace_state()整体替换状态
§泛型参数
S— 类型化状态(默认State= HashMap,向后兼容)
Implementations§
Source§impl<S: WorkflowState> NodeContext<'_, S>
impl<S: WorkflowState> NodeContext<'_, S>
Sourcepub fn replace_state(&mut self, new_state: S)
pub fn replace_state(&mut self, new_state: S)
替换整个状态(仅组合节点使用,如 ParallelNode)。
这是组合节点合并子分支结果后的 sanctioned API。
普通节点应使用 record() 声明变更意图。
替换后,Engine 持有的状态直接变为 new_state。
不会触发 Mutation 记录(因为这是整体替换,不是增量变更)。
Sourcepub fn record(&mut self, mutation: S::Mutation)
pub fn record(&mut self, mutation: S::Mutation)
记录一个 Mutation(强类型状态变更命令)到缓冲。
这是节点变更状态的唯一入口。
零序列化开销 — 直接存储 S::Mutation。
Executor 在节点执行后统一消费并 apply 到 State。
Sourcepub fn emit(&self, chunk: StreamChunk)
pub fn emit(&self, chunk: StreamChunk)
发射数据面事件(无 stream 则静默丢弃)。
Sourcepub fn is_cancelled(&self) -> bool
pub fn is_cancelled(&self) -> bool
检查是否已取消。
Sourcepub fn cancel_token(&self) -> &CancellationToken
pub fn cancel_token(&self) -> &CancellationToken
获取取消令牌引用。
Sourcepub fn set_token_cost(&mut self, cost: f64)
pub fn set_token_cost(&mut self, cost: f64)
设置 token 成本。
Sourcepub fn set_has_side_effects(&mut self)
pub fn set_has_side_effects(&mut self)
标记有副作用。
Auto Trait Implementations§
impl<'a, S = State> !RefUnwindSafe for NodeContext<'a, S>
impl<'a, S = State> !UnwindSafe for NodeContext<'a, S>
impl<'a, S> Freeze for NodeContext<'a, S>
impl<'a, S> Send for NodeContext<'a, S>
impl<'a, S> Sync for NodeContext<'a, S>
impl<'a, S> Unpin for NodeContext<'a, S>
impl<'a, S> UnsafeUnpin for NodeContext<'a, S>
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