pub enum WorkflowGraphNode<N: TreeNode = SyntaxNode> {
Input(Decl<N>),
Decl(Decl<N>),
Output(Decl<N>),
Conditional(ConditionalStatement<N>, NodeIndex),
ConditionalClause(ConditionalStatementClause<N>, NodeIndex),
Scatter(ScatterStatement<N>, NodeIndex),
Call(CallStatement<N>),
ExitConditional(ConditionalStatement<N>),
ExitScatter(ScatterStatement<N>),
}Expand description
Represents a node in an workflow evaluation graph.
Variants§
Input(Decl<N>)
The node is an input.
Decl(Decl<N>)
The node is a private decl.
Output(Decl<N>)
The node is an output decl.
Conditional(ConditionalStatement<N>, NodeIndex)
The node is a conditional statement.
Stores the AST node along with the exit node index.
ConditionalClause(ConditionalStatementClause<N>, NodeIndex)
The node represents a specific clause within a conditional statement.
Stores the clause AST node and exit node index. This allows each clause to have its own subgraph.
Scatter(ScatterStatement<N>, NodeIndex)
The node is a scatter statement.
Stores the AST node along with the exit node index.
Call(CallStatement<N>)
The node is a call statement.
ExitConditional(ConditionalStatement<N>)
The node is an exit of a conditional statement.
This is a special node that is paired with each conditional statement node.
It is the point by which the conditional is being exited and the outputs of the statement are introduced into the parent scope.
ExitScatter(ScatterStatement<N>)
The node is an exit of a scatter statement.
This is a special node that is paired with each scatter statement node.
It is the point by which the scatter is being exited and the outputs of the statement are introduced into the parent scope.
Implementations§
Trait Implementations§
Source§impl<N: Clone + TreeNode> Clone for WorkflowGraphNode<N>
impl<N: Clone + TreeNode> Clone for WorkflowGraphNode<N>
Source§fn clone(&self) -> WorkflowGraphNode<N>
fn clone(&self) -> WorkflowGraphNode<N>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl<N> Freeze for WorkflowGraphNode<N>where
N: Freeze,
impl<N> RefUnwindSafe for WorkflowGraphNode<N>where
N: RefUnwindSafe,
impl<N> Send for WorkflowGraphNode<N>where
N: Send,
impl<N> Sync for WorkflowGraphNode<N>where
N: Sync,
impl<N> Unpin for WorkflowGraphNode<N>where
N: Unpin,
impl<N> UnsafeUnpin for WorkflowGraphNode<N>where
N: UnsafeUnpin,
impl<N> UnwindSafe for WorkflowGraphNode<N>where
N: UnwindSafe,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more