pub struct Workflow {
pub id: WorkflowId,
pub name: String,
pub description: String,
pub tasks: HashMap<TaskId, Task>,
pub edges: Vec<Edge>,
pub config: WorkflowConfig,
pub state: WorkflowState,
pub metadata: HashMap<String, String>,
}Expand description
Workflow definition.
Fields§
§id: WorkflowIdUnique workflow identifier.
name: StringWorkflow name.
description: StringWorkflow description.
tasks: HashMap<TaskId, Task>Tasks in the workflow.
edges: Vec<Edge>Edges defining task dependencies.
config: WorkflowConfigWorkflow configuration.
state: WorkflowStateCurrent state.
metadata: HashMap<String, String>Workflow metadata.
Implementations§
Source§impl Workflow
impl Workflow
Sourcepub fn add_conditional_edge(
&mut self,
from: TaskId,
to: TaskId,
condition: String,
) -> Result<()>
pub fn add_conditional_edge( &mut self, from: TaskId, to: TaskId, condition: String, ) -> Result<()>
Add a conditional edge.
Sourcepub fn get_task_mut(&mut self, task_id: &TaskId) -> Option<&mut Task>
pub fn get_task_mut(&mut self, task_id: &TaskId) -> Option<&mut Task>
Get mutable task by ID.
Sourcepub fn get_dependencies(&self, task_id: &TaskId) -> Vec<TaskId>
pub fn get_dependencies(&self, task_id: &TaskId) -> Vec<TaskId>
Get dependencies for a task.
Sourcepub fn get_dependents(&self, task_id: &TaskId) -> Vec<TaskId>
pub fn get_dependents(&self, task_id: &TaskId) -> Vec<TaskId>
Get dependents for a task.
Sourcepub fn get_root_tasks(&self) -> Vec<TaskId>
pub fn get_root_tasks(&self) -> Vec<TaskId>
Get root tasks (tasks with no dependencies).
Sourcepub fn get_leaf_tasks(&self) -> Vec<TaskId>
pub fn get_leaf_tasks(&self) -> Vec<TaskId>
Get leaf tasks (tasks with no dependents).
Sourcepub fn topological_sort(&self) -> Result<Vec<TaskId>>
pub fn topological_sort(&self) -> Result<Vec<TaskId>>
Get topological order of tasks.
Sourcepub fn with_description(self, description: impl Into<String>) -> Self
pub fn with_description(self, description: impl Into<String>) -> Self
Set workflow description.
Sourcepub fn with_config(self, config: WorkflowConfig) -> Self
pub fn with_config(self, config: WorkflowConfig) -> Self
Set workflow configuration.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Workflow
impl<'de> Deserialize<'de> for Workflow
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 Workflow
impl RefUnwindSafe for Workflow
impl Send for Workflow
impl Sync for Workflow
impl Unpin for Workflow
impl UnsafeUnpin for Workflow
impl UnwindSafe for Workflow
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