pub struct StatesConfig {
pub initial: String,
pub disconnect_state: String,
pub blocking_states: Vec<String>,
pub definitions: HashMap<String, StateDefinition>,
}Expand description
Task state configuration.
Fields§
§initial: StringDefault state for new tasks.
disconnect_state: StringDefault state for tasks when their owner disconnects (must be untimed).
blocking_states: Vec<String>States that block dependent tasks (tasks in these states count as “not done”).
definitions: HashMap<String, StateDefinition>State definitions with allowed transitions and timing behavior.
Implementations§
Source§impl StatesConfig
impl StatesConfig
Sourcepub fn is_valid_state(&self, state: &str) -> bool
pub fn is_valid_state(&self, state: &str) -> bool
Check if a state is a valid defined state.
Sourcepub fn is_valid_transition(&self, from: &str, to: &str) -> bool
pub fn is_valid_transition(&self, from: &str, to: &str) -> bool
Check if a transition from one state to another is allowed.
Sourcepub fn is_timed_state(&self, state: &str) -> bool
pub fn is_timed_state(&self, state: &str) -> bool
Check if a state is timed (accumulates duration).
Sourcepub fn is_terminal_state(&self, state: &str) -> bool
pub fn is_terminal_state(&self, state: &str) -> bool
Check if a state is terminal (has no exits).
Sourcepub fn is_blocking_state(&self, state: &str) -> bool
pub fn is_blocking_state(&self, state: &str) -> bool
Check if a state is a blocking state (blocks dependents).
Sourcepub fn state_names(&self) -> Vec<&str>
pub fn state_names(&self) -> Vec<&str>
Get all defined state names.
Sourcepub fn untimed_state_names(&self) -> Vec<&str>
pub fn untimed_state_names(&self) -> Vec<&str>
Get all untimed state names (valid for disconnect final_state).
Trait Implementations§
Source§impl Clone for StatesConfig
impl Clone for StatesConfig
Source§fn clone(&self) -> StatesConfig
fn clone(&self) -> StatesConfig
Returns a duplicate of the value. Read more
1.0.0 · 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 StatesConfig
impl Debug for StatesConfig
Source§impl Default for StatesConfig
impl Default for StatesConfig
Source§impl<'de> Deserialize<'de> for StatesConfig
impl<'de> Deserialize<'de> for StatesConfig
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
Source§impl From<&WorkflowsConfig> for StatesConfig
Convert WorkflowsConfig to StatesConfig for backwards compatibility.
impl From<&WorkflowsConfig> for StatesConfig
Convert WorkflowsConfig to StatesConfig for backwards compatibility.
Source§fn from(workflows: &WorkflowsConfig) -> Self
fn from(workflows: &WorkflowsConfig) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for StatesConfig
impl RefUnwindSafe for StatesConfig
impl Send for StatesConfig
impl Sync for StatesConfig
impl Unpin for StatesConfig
impl UnwindSafe for StatesConfig
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,
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