pub struct LoopUntilStep {
pub body: Box<StageStep>,
pub until: Vec<Precondition>,
pub max_iterations: u32,
}Expand description
Repeat body until until holds (AND of preconditions over workflow state)
or max_iterations is reached — whichever comes first.
Fields§
§body: Box<StageStep>The step run each iteration. Its produced state (proposal state_changes,
and stage.<loop_id>.answer/.iteration) is visible to until.
until: Vec<Precondition>Loop stops once ALL of these pass (AND) against the state after a body
iteration. Empty until runs exactly max_iterations times.
max_iterations: u32Hard cap on body iterations. Must be >= 1 (enforced by
crate::verify_workflow); the loop guard against unbounded repetition.
Trait Implementations§
Source§impl Clone for LoopUntilStep
impl Clone for LoopUntilStep
Source§fn clone(&self) -> LoopUntilStep
fn clone(&self) -> LoopUntilStep
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for LoopUntilStep
impl Debug for LoopUntilStep
Source§impl<'de> Deserialize<'de> for LoopUntilStep
impl<'de> Deserialize<'de> for LoopUntilStep
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for LoopUntilStep
impl RefUnwindSafe for LoopUntilStep
impl Send for LoopUntilStep
impl Sync for LoopUntilStep
impl Unpin for LoopUntilStep
impl UnsafeUnpin for LoopUntilStep
impl UnwindSafe for LoopUntilStep
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> ErasedDestructor for Twhere
T: 'static,
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>
Converts
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>
Converts
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