diff --git a/summarize/src/main.rs b/summarize/src/main.rs index 9c3ce65..5b5e92e 100644 --- a/summarize/src/main.rs +++ b/summarize/src/main.rs @@ -192,6 +192,7 @@ fn summarize(opt: SummarizeOpt) -> Result<(), Box> { .sort_by(|l, r| r.self_time.cmp(&l.self_time)); let mut table = Table::new(); + table.set_format(*prettytable::format::consts::FORMAT_NO_LINESEP_WITH_TITLE); let mut has_cache_hits = false; let mut has_blocked_time = false; @@ -244,11 +245,23 @@ fn summarize(opt: SummarizeOpt) -> Result<(), Box> { .collect() } - table.add_row(Row::new(filter_cells(columns))); + table.set_titles(Row::new(filter_cells(columns))); let total_time = results.total_time.as_nanos() as f64; let mut percent_total_time: f64 = 0.0; + let mut label_max_width = (results.query_data.iter()) + .map(|q| q.label.len()) + .max() + .unwrap_or(0); + fn pad(s: &str, max: usize) -> String { + if s.len() >= max { + return s.to_string(); + } + + let pad = max.saturating_sub(s.len()); + format!("{s}{:. Result<(), Box> { // Don't show the cache hits, blocked time or incremental load time columns unless there is // data to show. table.add_row(Row::new(filter_cells(&[ - (&query_data.label, true), + (&pad(&query_data.label, label_max_width), true), (&format!("{:.2?}", query_data.self_time), true), (&format!("{:.3}", curr_percent), true), (&format!("{:.2?}", query_data.time), true), @@ -296,8 +309,9 @@ fn summarize(opt: SummarizeOpt) -> Result<(), Box> { } let mut table = Table::new(); + table.set_format(*prettytable::format::consts::FORMAT_NO_LINESEP_WITH_TITLE); - table.add_row(row!("Item", "Artifact Size",)); + table.set_titles(row!("Item", "Artifact Size")); for artifact_size in results.artifact_sizes { table.add_row(row![