Scale integer counts on the panel like every other figure

This commit is contained in:
flamingcow
2026-08-04 11:27:35 -07:00
parent 49a1a2f829
commit 21b20d0071
2 changed files with 14 additions and 3 deletions
+11
View File
@@ -2,6 +2,7 @@ package main
import (
"fmt"
"strconv"
"strings"
"time"
)
@@ -105,6 +106,16 @@ func scaleSI(v float64) string {
return fmt.Sprintf("%.2f P", v)
}
// The integer counterpart, for whole things counted rather than a rate
// measured. Below a thousand the figure is the count itself, since two decimals
// on a quantity that cannot have them read as precision that is not there.
func scaleCount(v uint64) string {
if v < 1000 {
return strconv.FormatUint(v, 10)
}
return scaleSI(float64(v))
}
// The same shape for time, whose magnitudes are sixties and twenty-fours.
func scaleTime(d time.Duration) string {
switch {
+3 -3
View File
@@ -303,7 +303,7 @@ func (d *display) errCounts(x, w, y int, e errs) int {
n := r.get(e)
c := errColor(n)
cx, cw, cy := d.chipAt(i, x, w, y, d.countChipH(), c)
ty := d.centerIn(d.gridB, cx, cw, cy+chipPadY, commas(n), c)
ty := d.centerIn(d.gridB, cx, cw, cy+chipPadY, scaleCount(n), c)
d.centerIn(d.grid, cx, cw, ty, r.label, c)
}
return y + d.countsH()
@@ -343,8 +343,8 @@ func (d *display) render(v view, elapsed time.Duration, cable string) error {
x, w = d.panel(d.sincePanel, v.since)
d.stats(d.gridB, x, w, d.sinceYs[0], []statCell{
{scaleTime(elapsed), "elapsed", uiFg},
{scaleSI(float64(v.rxFrames)), "packets", uiFg},
{scaleSI(float64(v.rxGot)), "bytes", uiFg},
{scaleCount(v.rxFrames), "packets", uiFg},
{scaleCount(v.rxGot), "bytes", uiFg},
{cable, "m", uiFg},
})
d.errCounts(x, w, d.sinceYs[1], v.since)