pub enum StepKind {
Action {
action: String,
entity: Option<String>,
id: Option<Tpl>,
params: Vec<(String, Tpl)>,
on_success: Outcome,
on_timeout: Option<Outcome>,
},
Transition {
entity: String,
id: Tpl,
verb: String,
params: Vec<(String, Tpl)>,
on_success: Outcome,
},
Condition {
branches: Vec<Branch>,
},
Wait {
event: Option<String>,
key: Vec<WaitKey>,
timeout: Option<Dur>,
on_event: Option<Outcome>,
on_timeout: Option<Outcome>,
},
Terminal {
status: Terminal,
reason: Option<Tpl>,
emit: Option<EmitSpec>,
compensate: bool,
result: Option<Tpl>,
},
}Expand description
What a step is.
Variants§
Action
An action: an engine action (audit_log, emit_event, send_email, notify,
send_notification, send_sms), or one the WorkflowDefinition performs.
Fields
Transition
A state-machine verb on a record.
Fields
Condition
A branch on conditions, in order.
Wait
A durable wait.
Fields
Terminal
An end.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for StepKind
impl<'de> Deserialize<'de> for StepKind
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
impl StructuralPartialEq for StepKind
Auto Trait Implementations§
impl Freeze for StepKind
impl RefUnwindSafe for StepKind
impl Send for StepKind
impl Sync for StepKind
impl Unpin for StepKind
impl UnsafeUnpin for StepKind
impl UnwindSafe for StepKind
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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>,
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