pub struct ParallelNode<S: WorkflowState = State, M: MergeStrategy<S> = StateMerge> { /* private fields */ }Expand description
并行节点 — 同时执行多个分支,通过 MergeStrategy 合并 State。
每个分支接收相同的 State 快照,独立产生变更。 所有分支完成后,变更通过 MergeStrategy 合并。
§泛型参数
S— 类型化状态M— 合并策略(默认为StateMerge)
§示例
ⓘ
let parallel = ParallelNode::builder()
.branch("search", Arc::new(SearchNode::new()))
.branch("analyze", Arc::new(AnalyzeNode::new()))
.build();
graph.node("research", NodeKind::Parallel(parallel));Implementations§
Source§impl ParallelNode
impl ParallelNode
Sourcepub fn builder() -> ParallelNodeBuilder
pub fn builder() -> ParallelNodeBuilder
创建默认构建器(State + StateMerge)。
Source§impl<S: WorkflowState, M: MergeStrategy<S>> ParallelNode<S, M>
impl<S: WorkflowState, M: MergeStrategy<S>> ParallelNode<S, M>
pub fn with_label(self, label: impl Into<String>) -> Self
pub fn branch_count(&self) -> usize
pub fn branch_names(&self) -> Vec<&str>
pub fn branches_iter( &self, ) -> impl Iterator<Item = (&str, &Arc<dyn FlowNode<S>>)>
pub fn error_strategy(&self) -> ParallelErrorStrategy
pub fn label(&self) -> Option<&str>
Trait Implementations§
Source§impl<S: WorkflowState, M: MergeStrategy<S>> Clone for ParallelNode<S, M>
impl<S: WorkflowState, M: MergeStrategy<S>> Clone for ParallelNode<S, M>
Source§impl<S: WorkflowState, M: MergeStrategy<S>> Debug for ParallelNode<S, M>
impl<S: WorkflowState, M: MergeStrategy<S>> Debug for ParallelNode<S, M>
Source§impl<S: WorkflowState, M: MergeStrategy<S>> FlowNode<S> for ParallelNode<S, M>
impl<S: WorkflowState, M: MergeStrategy<S>> FlowNode<S> for ParallelNode<S, M>
Auto Trait Implementations§
impl<S = State, M = StateMerge> !RefUnwindSafe for ParallelNode<S, M>
impl<S = State, M = StateMerge> !UnwindSafe for ParallelNode<S, M>
impl<S, M> Freeze for ParallelNode<S, M>
impl<S, M> Send for ParallelNode<S, M>
impl<S, M> Sync for ParallelNode<S, M>
impl<S, M> Unpin for ParallelNode<S, M>where
M: Unpin,
impl<S, M> UnsafeUnpin for ParallelNode<S, M>
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