fn data_line()

in aws-lc-rs/util/process-criterion-csv.rs [149:175]


    fn data_line(&self, aws_stats: &FinalizedStats, ring_stats: &FinalizedStats) -> String {
        let mut line = String::new();
        if self.min {
            let (aws, ring, rel) = compute(&aws_stats, &ring_stats, &FinalizedStats::min);
            line = format!("{},{:.2},{:.2},{:.2}", line, aws, ring, rel);
        }
        if self.median {
            let (aws, ring, rel) = compute(&aws_stats, &ring_stats, &FinalizedStats::median);
            line = format!("{},{:.2},{:.2},{:.2}", line, aws, ring, rel);
        }
        if self.max {
            let (aws, ring, rel) = compute(&aws_stats, &ring_stats, &FinalizedStats::max);
            line = format!("{},{:.2},{:.2},{:.2}", line, aws, ring, rel);
        }
        if self.percentile.len() > 0 {
            let mut percentiles = self.percentile.clone();
            percentiles.sort();
            for percentile in percentiles {
                let percentile = percentile as f64 / 100.0;
                let (aws, ring, rel) = compute(&aws_stats, &ring_stats, &|s: &FinalizedStats| {
                    s.percentile(percentile)
                });
                line = format!("{},{:.2},{:.2},{:.2}", line, aws, ring, rel);
            }
        }
        line
    }