Skip to main content

agent_doc_flow/
closeout.rs

1use std::path::Path;
2
3pub fn closeout_latency_message(file: &Path, total_ms: u128, phases: &[(String, u128)]) -> String {
4    let phase_text = phases
5        .iter()
6        .map(|(phase, elapsed)| format!("{phase}:{elapsed}ms"))
7        .collect::<Vec<_>>()
8        .join(",");
9    format!(
10        "closeout_latency file={} total_ms={} phases={}",
11        file.display(),
12        total_ms,
13        phase_text
14    )
15}
16
17#[cfg(test)]
18mod tests {
19    use super::*;
20
21    #[test]
22    fn closeout_latency_message_lists_phase_timings() {
23        let message = closeout_latency_message(
24            Path::new("tasks/doc.md"),
25            300,
26            &[
27                ("git_commit".to_string(), 12),
28                ("session_check".to_string(), 4),
29            ],
30        );
31
32        assert!(message.contains("closeout_latency file=tasks/doc.md total_ms=300"));
33        assert!(message.contains("git_commit:12ms,session_check:4ms"));
34    }
35}