in providers/linux/util.go [97:120]
func parseBytesOrNumber(data []byte) (uint64, error) {
parts := bytes.Fields(data)
if len(parts) == 0 {
return 0, errors.New("empty value")
}
num, err := strconv.ParseUint(string(parts[0]), 10, 64)
if err != nil {
return 0, fmt.Errorf("failed to parse value: %w", err)
}
var multiplier uint64 = 1
if len(parts) >= 2 {
switch string(parts[1]) {
case "kB":
multiplier = 1024
default:
return 0, fmt.Errorf("unhandled unit %v", string(parts[1]))
}
}
return num * multiplier, nil
}