From 06167908cb0c71436111ca98a9a3a9b913d0b353 Mon Sep 17 00:00:00 2001 From: David Peter Date: Mon, 5 Oct 2026 14:46:46 +0200 Subject: [PATCH] Choose prose comparison and ratio in one match --- src/benchmark/scheduler.rs | 45 ++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/src/benchmark/scheduler.rs b/src/benchmark/scheduler.rs index 24ed726..13278f0 100644 --- a/src/benchmark/scheduler.rs +++ b/src/benchmark/scheduler.rs @@ -97,38 +97,35 @@ impl<'a> Scheduler<'a> { for item in others { // The prose summary expresses both directions as factors above one. - let (relative_speed, relative_speed_stddev) = - if item.relative_ordering == Ordering::Less { - ( - 1.0 / item.relative_speed, + let (relative_speed, relative_speed_stddev, prefix, suffix) = + match item.relative_ordering { + Ordering::Less => ( + format!("{:8.2}", 1.0 / item.relative_speed), item.relative_speed_stddev .map(|stddev| stddev / item.relative_speed.powi(2)), - ) - } else { - (item.relative_speed, item.relative_speed_stddev) + "", + " times slower than", + ), + Ordering::Greater => ( + format!("{:8.2}", item.relative_speed), + item.relative_speed_stddev, + "", + " times faster than", + ), + Ordering::Equal => ( + format!("{:.2}", item.relative_speed), + item.relative_speed_stddev, + " As fast (", + ") as", + ), }; let stddev = if let Some(stddev) = relative_speed_stddev { format!(" ± {}", format!("{:.2}", stddev).green()) } else { "".into() }; - let comparator = match item.relative_ordering { - Ordering::Less => format!( - "{}{} times slower than", - format!("{relative_speed:8.2}").bold().green(), - stddev - ), - Ordering::Greater => format!( - "{}{} times faster than", - format!("{relative_speed:8.2}").bold().green(), - stddev - ), - Ordering::Equal => format!( - " As fast ({}{}) as", - format!("{relative_speed:.2}").bold().green(), - stddev - ), - }; + let comparator = + format!("{prefix}{}{stddev}{suffix}", relative_speed.bold().green()); console_writeln!( stdout, "{} {}",