diff --git a/src/report.rs b/src/report.rs index 1f3c5ba..82f7a48 100644 --- a/src/report.rs +++ b/src/report.rs @@ -179,10 +179,11 @@ pub(crate) fn read_export_rows(path: &Path) -> Result> { pub(crate) fn print_table(results: &[T]) { eprintln!(); eprintln!("{}", style(format!(" Fastest {} IPs", results.len())).bold().underlined()); - eprintln!(" {:>3} {:<39} {:>9}", "#", "IP", "Latency"); + let ip_w = ip_col_width(results.iter().map(|r| r.ip())); + eprintln!(" {:>3} {:6.1} ms"); + let latency = format!("{ms:.1} ms"); let colored = if ms < 150.0 { style(latency).green() } else if ms < 250.0 { @@ -190,18 +191,25 @@ pub(crate) fn print_table(results: &[T]) { } else { style(latency).red() }; - eprintln!(" {:>3} {:<39} {}", i + 1, r.ip().to_string(), colored); + eprintln!(" {:>3} {:) -> usize { + ips.map(|ip| ip.to_string().len()).max().unwrap_or(0).max(2) +} + /// Speed-stage table: IP, latency, speed. pub(crate) fn print_speed_table(results: &[speed::SpeedResult]) { eprintln!(); eprintln!("{}", style(format!(" Top {} nodes", results.len())).bold().underlined()); - eprintln!(" {:>3} {:<39} {:>9} {:>10}", "#", "IP", "Latency", "Speed"); + let ip_w = ip_col_width(results.iter().map(|r| r.ip)); + eprintln!(" {:>3} {:= 2.5 { style(speed).green() @@ -210,7 +218,7 @@ pub(crate) fn print_speed_table(results: &[speed::SpeedResult]) { } else { style(speed).red() }; - eprintln!(" {:>3} {:<39} {:>6.0} ms {}", i + 1, r.ip.to_string(), ms, colored); + eprintln!(" {:>3} {: