pub struct StateTransition {
pub from_state: String,
pub to_state: String,
pub probability: f64,
pub condition: Option<String>,
pub side_effects: Option<Vec<String>>,
pub condition_expression: Option<String>,
pub condition_ast: Option<Value>,
pub sub_scenario_ref: Option<String>,
}Expand description
State transition definition
Fields§
§from_state: StringSource state
to_state: StringDestination state
probability: f64Probability of this transition occurring (0.0 to 1.0)
condition: Option<String>Optional condition for this transition (legacy string format)
side_effects: Option<Vec<String>>Optional side effects of this transition
condition_expression: Option<String>JavaScript/TypeScript expression for conditional transition
This is the new preferred way to specify conditions. Supports full JavaScript expressions with variable access, comparison, and logical operators.
condition_ast: Option<Value>Parsed condition AST for validation (not serialized, computed on demand)
sub_scenario_ref: Option<String>Reference to a sub-scenario to execute during this transition
If set, the sub-scenario will be executed when this transition is taken.
Implementations§
Source§impl StateTransition
impl StateTransition
Sourcepub fn new(from: impl Into<String>, to: impl Into<String>) -> StateTransition
pub fn new(from: impl Into<String>, to: impl Into<String>) -> StateTransition
Create a new state transition
Sourcepub fn with_probability(self, probability: f64) -> StateTransition
pub fn with_probability(self, probability: f64) -> StateTransition
Set probability
Sourcepub fn with_condition(self, condition: impl Into<String>) -> StateTransition
pub fn with_condition(self, condition: impl Into<String>) -> StateTransition
Set condition
Sourcepub fn with_side_effect(self, effect: impl Into<String>) -> StateTransition
pub fn with_side_effect(self, effect: impl Into<String>) -> StateTransition
Add side effect
Sourcepub fn with_condition_expression(
self,
expression: impl Into<String>,
) -> StateTransition
pub fn with_condition_expression( self, expression: impl Into<String>, ) -> StateTransition
Set condition expression (JavaScript/TypeScript)
Sourcepub fn with_sub_scenario_ref(
self,
sub_scenario_id: impl Into<String>,
) -> StateTransition
pub fn with_sub_scenario_ref( self, sub_scenario_id: impl Into<String>, ) -> StateTransition
Set sub-scenario reference
Trait Implementations§
Source§impl Clone for StateTransition
impl Clone for StateTransition
Source§fn clone(&self) -> StateTransition
fn clone(&self) -> StateTransition
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for StateTransition
impl Debug for StateTransition
Source§impl<'de> Deserialize<'de> for StateTransition
impl<'de> Deserialize<'de> for StateTransition
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<StateTransition, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<StateTransition, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for StateTransition
impl JsonSchema for StateTransition
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref keyword. Read moreSource§impl Serialize for StateTransition
impl Serialize for StateTransition
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for StateTransition
impl RefUnwindSafe for StateTransition
impl Send for StateTransition
impl Sync for StateTransition
impl Unpin for StateTransition
impl UnsafeUnpin for StateTransition
impl UnwindSafe for StateTransition
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