private def byteCount()

in multiversion/src/main/scala/multiversion/loggers/Word.scala [36:48]


  private def byteCount(bytes: Long, si: Boolean = false) = {
    val unit = if (si) 1000 else 1024
    if (bytes < unit)
      bytes + " B"
    else {
      val prefixes = if (si) "kMGTPE" else "KMGTPE"
      val exp = (math.log(bytes) / math.log(unit)).toInt min prefixes.length
      val pre = prefixes.charAt(exp - 1) + (if (si) "" else "i")
      val n = bytes / math.pow(unit, exp)
      if (exp < 2) f"${n}%.1f ${pre}B"
      else f"${n}%.2f ${pre}B" // Use more precision once we go over 1 GiB
    }
  }