swarm_engine_eval/metrics/
task.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7pub struct TaskMetrics {
8 pub total_tasks: u64,
10
11 pub completed_tasks: u64,
13
14 pub success_rate: f64,
16
17 pub total_ticks: u64,
19
20 pub total_actions: u64,
22
23 pub successful_actions: u64,
25}
26
27impl TaskMetrics {
28 pub fn from_core_metrics(
30 total_ticks: u64,
31 total_actions: u64,
32 successful_actions: u64,
33 ) -> Self {
34 let success_rate = if total_actions > 0 {
35 successful_actions as f64 / total_actions as f64
36 } else {
37 0.0
38 };
39
40 Self {
41 total_tasks: 0, completed_tasks: 0, success_rate,
44 total_ticks,
45 total_actions,
46 successful_actions,
47 }
48 }
49}