1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//! Report collection for benchmark results.
//!
//! This module provides the infrastructure for collecting iteration results
//! from benchmark workers and aggregating them into a final report.
//!
//! # Overview
//!
//! Collectors receive [`IterReport`](crate::IterReport) results from workers via a channel,
//! aggregate statistics, and produce a final [`BenchReport`] when the benchmark completes.
//!
//! # Available Collectors
//!
//! - [`TuiCollector`] - Interactive terminal UI with real-time statistics, histograms,
//! and progress visualization. Supports pausing and keyboard controls.
//! - [`SilentCollector`] - Headless collector for CI/CD environments or scripted use.
//! Collects results without any terminal output.
//!
//! # Example
//!
//! Collectors are typically created and managed by the benchmark runner, but can
//! be used directly:
//!
//! ```ignore
//! let mut collector = SilentCollector::new(bench_opts, result_rx, cancel_token);
//! let report = collector.run().await?;
//! ```
use async_trait;
pub use SilentCollector;
pub use TuiCollector;
use crateBenchReport;
/// A trait for collecting iteration results and generating benchmark reports.
///
/// Implementors receive iteration results from workers, track statistics,
/// and produce a final aggregated report when the benchmark completes.