fun parseMemorySize()

in src/main/kotlin/com/github/mkartashev/hserr/miner/artifact/Artifact.kt [70:86]


        fun parseMemorySize(s: String): ULong? {
            return if (s.isBlank()) null else {
                val numberStr = s.takeWhile { it.isDigit() }
                val number = numberStr.toULongOrNull() ?: return null
                val suffix = s.substringAfter(numberStr).trim().lowercase(Locale.getDefault())

                when (suffix) {
                    "kb" -> number * KiB
                    "k", "kib" -> number * KiB
                    "mb" -> number * KiB * KiB
                    "m", "mib" -> number * KiB * KiB
                    "gb" -> number * KiB * KiB * KiB
                    "g", "gib" -> number * KiB * KiB * KiB
                    else -> null
                }
            }
        }