bijux-dag-runtime 0.4.0

Execution engine, replay semantics, and runtime policy layer for Bijux DAG graphs.
Documentation
use bijux_dag_artifacts::{NodeCounts, RunSummary};

pub fn summarize_counts(counts: &NodeCounts) -> RunSummary {
    RunSummary {
        total_nodes: counts.success
            + counts.failed
            + counts.skipped
            + counts.cached
            + counts.cancelled,
        success: counts.success,
        failed: counts.failed,
        skipped: counts.skipped,
        cached: counts.cached,
        cancelled: counts.cancelled,
        promoted_outputs: Vec::new(),
    }
}

#[cfg(test)]
mod tests {
    use super::summarize_counts;
    use bijux_dag_artifacts::NodeCounts;

    #[test]
    fn summary_total_matches_component_counts() {
        let counts = NodeCounts { success: 3, failed: 2, skipped: 1, cached: 4, cancelled: 2 };
        let summary = summarize_counts(&counts);
        assert_eq!(summary.success, 3);
        assert_eq!(summary.failed, 2);
        assert_eq!(summary.skipped, 1);
        assert_eq!(summary.cached, 4);
        assert_eq!(summary.cancelled, 2);
        assert_eq!(summary.total_nodes, 12);
    }
}