1package tinyclient23import (4 "fmt"5 "strconv"6)78func fileSize(value any) string {9 size, err := strconv.ParseFloat(plainString(value), 64)10 if err != nil || size < 0 {11 return ""12 }13 if size < 1024 {14 return fmt.Sprintf("%.0f B", size)15 }16 units := []string{"KiB", "MiB", "GiB", "TiB"}17 for i, unit := range units {18 size /= 102419 if size < 1024 || i == len(units)-1 {20 return fmt.Sprintf("%.1f %s", size, unit)21 }22 }23 return ""24}