pub struct MetaWorkflow {
pub name: String,
pub description: String,
pub sub_workflows: Vec<Workflow>,
pub dependencies: Vec<CrossDependency>,
pub statuses: HashMap<SubWorkflowRef, SubWorkflowStatus>,
pub shared_variables: HashMap<String, Value>,
pub metadata: HashMap<String, String>,
}Expand description
A meta-workflow that composes multiple sub-workflows.
Fields§
§name: StringName of the meta-workflow.
description: StringDescription.
sub_workflows: Vec<Workflow>Sub-workflows in insertion order.
dependencies: Vec<CrossDependency>Cross-workflow dependencies.
statuses: HashMap<SubWorkflowRef, SubWorkflowStatus>Per-sub-workflow execution status.
Shared variables accessible by all sub-workflows.
metadata: HashMap<String, String>Metadata.
Implementations§
Source§impl MetaWorkflow
impl MetaWorkflow
Sourcepub fn with_description(self, description: impl Into<String>) -> Self
pub fn with_description(self, description: impl Into<String>) -> Self
Set description.
Sourcepub fn add_sub_workflow(&mut self, workflow: Workflow) -> SubWorkflowRef
pub fn add_sub_workflow(&mut self, workflow: Workflow) -> SubWorkflowRef
Add a sub-workflow, returning its reference handle.
Sourcepub fn add_dependency(
&mut self,
dep: CrossDependency,
) -> Result<(), ComposeError>
pub fn add_dependency( &mut self, dep: CrossDependency, ) -> Result<(), ComposeError>
Sourcepub fn set_variable(&mut self, key: impl Into<String>, value: Value)
pub fn set_variable(&mut self, key: impl Into<String>, value: Value)
Set a shared variable.
Sourcepub fn get_sub_workflow(&self, ref_handle: SubWorkflowRef) -> Option<&Workflow>
pub fn get_sub_workflow(&self, ref_handle: SubWorkflowRef) -> Option<&Workflow>
Get a sub-workflow by reference.
Sourcepub fn get_sub_workflow_mut(
&mut self,
ref_handle: SubWorkflowRef,
) -> Option<&mut Workflow>
pub fn get_sub_workflow_mut( &mut self, ref_handle: SubWorkflowRef, ) -> Option<&mut Workflow>
Get a mutable sub-workflow.
Sourcepub fn sub_workflow_count(&self) -> usize
pub fn sub_workflow_count(&self) -> usize
Total number of sub-workflows.
Sourcepub fn total_task_count(&self) -> usize
pub fn total_task_count(&self) -> usize
Total number of tasks across all sub-workflows.
Sourcepub fn execution_order(&self) -> Result<Vec<SubWorkflowRef>, ComposeError>
pub fn execution_order(&self) -> Result<Vec<SubWorkflowRef>, ComposeError>
Compute execution order (topological sort of sub-workflows).
§Errors
Returns ComposeError::CycleDetected if dependencies form a cycle.
Sourcepub fn predecessors(&self, ref_handle: SubWorkflowRef) -> Vec<SubWorkflowRef>
pub fn predecessors(&self, ref_handle: SubWorkflowRef) -> Vec<SubWorkflowRef>
Return predecessors of a sub-workflow.
Sourcepub fn successors(&self, ref_handle: SubWorkflowRef) -> Vec<SubWorkflowRef>
pub fn successors(&self, ref_handle: SubWorkflowRef) -> Vec<SubWorkflowRef>
Return successors of a sub-workflow.
Sourcepub fn root_sub_workflows(&self) -> Vec<SubWorkflowRef>
pub fn root_sub_workflows(&self) -> Vec<SubWorkflowRef>
Get root sub-workflows (no predecessors).
Sourcepub fn leaf_sub_workflows(&self) -> Vec<SubWorkflowRef>
pub fn leaf_sub_workflows(&self) -> Vec<SubWorkflowRef>
Get leaf sub-workflows (no successors).
Sourcepub fn set_status(
&mut self,
ref_handle: SubWorkflowRef,
status: SubWorkflowStatus,
)
pub fn set_status( &mut self, ref_handle: SubWorkflowRef, status: SubWorkflowStatus, )
Mark a sub-workflow status.
Sourcepub fn get_status(
&self,
ref_handle: SubWorkflowRef,
) -> Option<&SubWorkflowStatus>
pub fn get_status( &self, ref_handle: SubWorkflowRef, ) -> Option<&SubWorkflowStatus>
Get the status of a sub-workflow.
Sourcepub fn is_complete(&self) -> bool
pub fn is_complete(&self) -> bool
Check whether all sub-workflows are complete (or skipped).
Sourcepub fn flatten(&self) -> Workflow
pub fn flatten(&self) -> Workflow
Merge a finished meta-workflow’s sub-workflows into a single flat Workflow.
This creates a new workflow containing all tasks from all sub-workflows, preserving internal edges and adding edges between leaf tasks of predecessors and root tasks of successors as per dependencies.
Sourcepub fn summary(&self) -> MetaWorkflowSummary
pub fn summary(&self) -> MetaWorkflowSummary
Compute summary metrics for the meta-workflow.
Trait Implementations§
Source§impl Clone for MetaWorkflow
impl Clone for MetaWorkflow
Source§fn clone(&self) -> MetaWorkflow
fn clone(&self) -> MetaWorkflow
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more