code: func (b Bytes) String() string {
  	unit := ""
  	value := float32(b)
  
  	switch {
  	case b >= terabyte:
  		unit = "T"
  		value = value / terabyte
  	case b >= gigabyte:
  		unit = "G"
  		value = value / gigabyte
  	case b >= megabyte:
  		unit = "M"
  		value = value / megabyte
  	case b >= kilobyte:
  		unit = "K"
  		value = value / kilobyte
  	case b >= bbyte:
  		unit = "B"
  	case b == 0:
  		return "0"
  	}
  
  	stringValue := fmt.Sprintf("%.1f", value)
  	stringValue = strings.TrimSuffix(stringValue, ".0")
  	return fmt.Sprintf("%s%s", stringValue, unit)
  }
docs: // Returns a human-readable byte string of the form 10M, 12.5K, and so forth.  The following units are available:
  //	T: Terabyte
  //	G: Gigabyte
  //	M: Megabyte
  //	K: Kilobyte
  //	B: Byte
  // The unit that results in the smallest number greater than or equal to 1 is always chosen.