pub struct LoopNode { /* private fields */ }Expand description
Loop node - controlled iteration.
Implements a loop construct for repeated execution. The loop continues until an exit condition is met. Loop back-edges must be declared in the flow topology to be excluded from cycle detection.
§Ports
- Input: “in” - Initial input / data from loop body
- Output: “continue” - Activated to continue the loop
- Output: “exit” - Activated when loop terminates
§Example Configuration
nodes:
retry_loop:
type: std::loop
config:
max_iterations: 3
# Or: until_true: $.success
# Or: until_expression: "${iteration} >= 3 || ${result.success}"
inputs:
- from: start.out -> in
- from: retry_action.out -> in # back-edge from loop body
outputs:
continue: -> retry_action.in
exit: -> done.in§Back-edge Declaration
topology:
loop_edges:
- from: retry_action
to: retry_loop # This edge is treated as a back-edgeImplementations§
Source§impl LoopNode
impl LoopNode
Sourcepub fn with_max_iterations(max: u32) -> Self
pub fn with_max_iterations(max: u32) -> Self
Create a loop with max iterations exit condition.
Sourcepub fn until_field_equals(
field: impl Into<String>,
value: impl Into<String>,
max_iterations: u32,
) -> Self
pub fn until_field_equals( field: impl Into<String>, value: impl Into<String>, max_iterations: u32, ) -> Self
Create a loop that runs until a field equals a value.
Sourcepub fn until_true(field: impl Into<String>, max_iterations: u32) -> Self
pub fn until_true(field: impl Into<String>, max_iterations: u32) -> Self
Create a loop that runs until a boolean field is true.
Sourcepub fn with_expression(expr: impl Into<String>, max_iterations: u32) -> Self
pub fn with_expression(expr: impl Into<String>, max_iterations: u32) -> Self
Create a loop with a custom exit expression.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for LoopNode
impl RefUnwindSafe for LoopNode
impl Send for LoopNode
impl Sync for LoopNode
impl Unpin for LoopNode
impl UnwindSafe for LoopNode
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.