From d564d4f2d743712a2fe2a35177edfdf97dc9c10b Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Mon, 16 Dec 2024 23:59:16 -0600 Subject: [PATCH] make one you can send a 'nil' to it --- time.go | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/time.go b/time.go index 9de84ea..e67cce1 100644 --- a/time.go +++ b/time.go @@ -51,6 +51,14 @@ func GetDurationStamp(t time.Time) string { return FormatDuration(duration) } +// allows nil +func HumanDuration(d *time.Duration) string { + if d == nil { + return "" + } + return FormatDuration(*d) +} + func FormatDuration(d time.Duration) string { result := "" @@ -94,6 +102,19 @@ func FormatDuration(d time.Duration) string { if ms > 100 { // todo: print .3s, etc ? } - result += fmt.Sprintf("%dms", ms) + if ms > 0 { + result += fmt.Sprintf("%dms", ms) + return result + } + + // report in milliseconds + mc := int(d.Microseconds()) + if mc > 0 { + result += fmt.Sprintf("%dmc", mc) + return result + } + + ns := int(d.Nanoseconds()) + result += fmt.Sprintf("%dns", ns) return result }