swarm-engine-eval 0.1.6

Evaluation framework for SwarmEngine
Documentation
//! Task completion metrics

use serde::{Deserialize, Serialize};

/// Task completion metrics
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct TaskMetrics {
    /// Total number of tasks
    pub total_tasks: u64,

    /// Number of completed tasks
    pub completed_tasks: u64,

    /// Success rate (0.0 - 1.0)
    pub success_rate: f64,

    /// Total ticks
    pub total_ticks: u64,

    /// Total actions
    pub total_actions: u64,

    /// Successful actions
    pub successful_actions: u64,
}

impl TaskMetrics {
    /// Create from SwarmApp outcome
    pub fn from_core_metrics(
        total_ticks: u64,
        total_actions: u64,
        successful_actions: u64,
    ) -> Self {
        let success_rate = if total_actions > 0 {
            successful_actions as f64 / total_actions as f64
        } else {
            0.0
        };

        Self {
            total_tasks: 0,     // Set by scenario
            completed_tasks: 0, // Set by scenario
            success_rate,
            total_ticks,
            total_actions,
            successful_actions,
        }
    }
}