func valueToHtmlString( value reflect.Value, t types.Type, u units.Unit, isValueAPointer bool) string { switch { case t.IsInt() && !isValueAPointer: switch u { case units.Byte: return iCompactForm( value.Int(), 1024, byteSuffixes) case units.BytePerSecond: return iCompactForm( value.Int(), 1024, bytePerSecondSuffixes) default: return iCompactForm( value.Int(), 1000, suffixes) } case t.IsUint() && !isValueAPointer: switch u { case units.Byte: return uCompactForm( value.Uint(), 1024, byteSuffixes) case units.BytePerSecond: return uCompactForm( value.Uint(), 1024, bytePerSecondSuffixes) default: return uCompactForm( value.Uint(), 1000, suffixes) } case t == types.GoDuration && !isValueAPointer: d := duration.New(valueToGoDuration(value)) if d.IsNegative() { return valueToTextString( value, t, u, isValueAPointer) } return d.PrettyFormat() case t == types.GoTime: t := valueToTime(value, isValueAPointer).UTC() return t.Format("2006-01-02T15:04:05.999999999Z") default: return valueToTextString(value, t, u, isValueAPointer) } }