#[derive(Clone, Debug, Default, PartialEq, Eq)]
pub struct ParallelRunStats {
    pub repo_tasks_total: usize,
    pub repo_tasks_reused: usize,
    pub repo_tasks_running: usize,
    pub repo_tasks_failed: usize,
    pub inflight_snapshot_bytes: usize,
    pub repo_queue_depth: usize,
}

#[cfg(test)]
mod tests {
    use super::ParallelRunStats;

    #[test]
    fn parallel_run_stats_default_to_zero() {
        let stats = ParallelRunStats::default();
        assert_eq!(stats.repo_tasks_total, 0);
        assert_eq!(stats.repo_tasks_reused, 0);
        assert_eq!(stats.repo_tasks_running, 0);
        assert_eq!(stats.repo_tasks_failed, 0);
        assert_eq!(stats.inflight_snapshot_bytes, 0);
        assert_eq!(stats.repo_queue_depth, 0);
    }
}
