Skip to content

Commit fcc5838

Browse files
bring back some columns
1 parent f1a0550 commit fcc5838

File tree

1 file changed

+45
-41
lines changed

1 file changed

+45
-41
lines changed

β€Žlimpid/src/report.rsβ€Ž

Lines changed: 45 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -303,11 +303,11 @@ pub(crate) fn generate_reports(
303303
let excluded_syms: Vec<&ComparativeSymbol> =
304304
sorted_syms.iter().skip(TOP_N_SYMBOLS).copied().collect();
305305

306-
// If there are no size changes at all
306+
// If there are any symbol size changes, render a detailed Markdown table
307307
if !detailed_syms.is_empty() {
308-
// Render a Markdown table comparing symbol sizes between baseline and current.
309-
md!("| Symbol | Crates | Baseline Size | Current Size | Change |\n");
310-
md!("|--------|--------|---------------|--------------|--------|\n");
308+
// Markdown table with explicit old/new/diff columns
309+
md!("| Symbol | Baseline Size | Current Size | Change |\n");
310+
md!("|--------|---------------|--------------|--------|\n");
311311

312312
for sym in detailed_syms.iter() {
313313
let name = sym
@@ -316,45 +316,42 @@ pub(crate) fn generate_reports(
316316
.or_else(|| sym.old.map(|s| s.name.as_str()))
317317
.unwrap_or("<unknown>");
318318

319-
// Get crates from the current symbol, or fall back to baseline
320-
let crates = sym
319+
// Determine crates
320+
let crates_opt = sym
321321
.new
322322
.map(|s| &s.crates)
323323
.or_else(|| sym.old.map(|s| &s.crates));
324324

325-
let crates_str = if let Some(crates_set) = crates {
326-
if crates_set.is_empty() {
327-
"β€”".to_string()
325+
let crates_cell = if let Some(set) = crates_opt {
326+
if set.is_empty() {
327+
String::new()
328328
} else {
329-
crates_set
329+
let crates_fmt = set
330330
.iter()
331-
.map(|c| c.as_str())
331+
.map(|c| format!("**{}**", c.as_str()))
332332
.collect::<Vec<_>>()
333-
.join(", ")
333+
.join(", ");
334+
format!("<br> found in {}", crates_fmt)
334335
}
335336
} else {
336-
"β€”".to_string()
337+
String::new()
337338
};
338339

340+
// Sizes
339341
let baseline_size = sym.old.map(|s| s.total_size.value());
340342
let current_size = sym.new.map(|s| s.total_size.value());
341343

342344
let old_sz = baseline_size.unwrap_or(0);
343345
let new_sz = current_size.unwrap_or(0);
344346

345-
// Format sizes
346-
let baseline_fmt = if let Some(sz) = baseline_size {
347-
format_bytes(sz)
348-
} else {
349-
"β€”".to_string()
350-
};
351-
let current_fmt = if let Some(sz) = current_size {
352-
format_bytes(sz)
353-
} else {
354-
"β€”".to_string()
355-
};
347+
let baseline_fmt = baseline_size
348+
.map(format_bytes)
349+
.unwrap_or_else(|| "β€”".to_string());
350+
let current_fmt = current_size
351+
.map(format_bytes)
352+
.unwrap_or_else(|| "β€”".to_string());
356353

357-
// Change column
354+
// Diff string (re-use existing emoji style)
358355
let diff = new_sz as isize - old_sz as isize;
359356
let change_str = if baseline_size.is_some() && current_size.is_some() {
360357
if diff > 0 {
@@ -372,10 +369,11 @@ pub(crate) fn generate_reports(
372369
"β€”".to_owned()
373370
};
374371

372+
// Final row
375373
md!(
376-
"| `{}` | {} | {} | {} | {} |\n",
374+
"| `{}`{} | {} | {} | {} |\n",
377375
name,
378-
crates_str,
376+
crates_cell,
379377
baseline_fmt,
380378
current_fmt,
381379
change_str
@@ -487,8 +485,9 @@ pub(crate) fn generate_reports(
487485
let excluded_fns: Vec<&ComparativeFn> = comparative_fns.iter().skip(20).collect();
488486

489487
if !detailed_fns.is_empty() {
490-
md!("| Function | Crates | Baseline Lines | Current Lines | Change |\n");
491-
md!("|----------|--------|---------------|---------------|--------|\n");
488+
// Markdown table with explicit old/new/diff columns
489+
md!("| Function | Baseline Lines | Current Lines | Change |\n");
490+
md!("|----------|---------------|--------------|--------|\n");
492491

493492
for f in &detailed_fns {
494493
let name = f
@@ -498,22 +497,24 @@ pub(crate) fn generate_reports(
498497
.unwrap_or("<unknown>");
499498

500499
// Determine crates
501-
let crates_set = f
500+
let crates_opt = f
502501
.new
503502
.map(|v| &v.crates)
504503
.or_else(|| f.old.map(|v| &v.crates));
505504

506-
let crates_str = if let Some(set) = crates_set {
505+
let crates_cell = if let Some(set) = crates_opt {
507506
if set.is_empty() {
508-
"β€”".to_string()
507+
String::new()
509508
} else {
510-
set.iter()
511-
.map(|c| c.as_str())
509+
let crates_fmt = set
510+
.iter()
511+
.map(|c| format!("**{}**", c.as_str()))
512512
.collect::<Vec<_>>()
513-
.join(", ")
513+
.join(", ");
514+
format!("<br> found in {}", crates_fmt)
514515
}
515516
} else {
516-
"β€”".to_string()
517+
String::new()
517518
};
518519

519520
let baseline_lines = f.old.map(|v| v.total_llvm_lines.value());
@@ -534,20 +535,23 @@ pub(crate) fn generate_reports(
534535
if diff > 0 {
535536
format!("πŸ“ˆ +{}", fmt_thousands(diff))
536537
} else if diff < 0 {
537-
format!("πŸ“‰ {}", fmt_thousands(diff))
538+
format!("πŸ“‰ -{}", fmt_thousands((-diff) as isize))
538539
} else {
539540
"βž– no change".to_owned()
540541
}
541542
} else if baseline_lines.is_none() && current_lines.is_some() {
542543
"πŸ†• NEW".to_owned()
543-
} else {
544+
} else if baseline_lines.is_some() && current_lines.is_none() {
544545
"πŸ—‘οΈ REMOVED".to_owned()
546+
} else {
547+
"β€”".to_owned()
545548
};
546549

550+
// Final row
547551
md!(
548-
"| `{}` | {} | {} | {} | {} |\n",
552+
"| `{}`{} | {} | {} | {} |\n",
549553
name,
550-
crates_str,
554+
crates_cell,
551555
baseline_fmt,
552556
current_fmt,
553557
change_str
@@ -569,7 +573,7 @@ pub(crate) fn generate_reports(
569573
let change_str = if diff > 0 {
570574
format!("πŸ“ˆ +{}", fmt_thousands(diff))
571575
} else if diff < 0 {
572-
format!("πŸ“‰ {}", fmt_thousands(diff))
576+
format!("πŸ“‰ -{}", fmt_thousands((-diff) as isize))
573577
} else {
574578
"βž– no change".to_string()
575579
};

0 commit comments

Comments
Β (0)