From b512a1d0e12433bdf67c7204300f5f4020b2aefa Mon Sep 17 00:00:00 2001 From: Goooler Date: Wed, 11 Mar 2026 13:25:01 +0800 Subject: [PATCH] Migrate from Byte Units to byte-size ``` diff -rf diffuse/build/install/diffuse/libs-old/ diffuse/build/install/diffuse/libs-new/ Only in libs-old: byteunits-0.9.1.jar Binary files libs-old/io-0.4.0-SNAPSHOT.jar and libs-new/io-0.4.0-SNAPSHOT.jar differ Only in libs-new: javamath2kmp-jvm-1.1.jar Only in libs-new: library-jvm.jar ``` --- gradle/libs.versions.toml | 2 +- io/build.gradle | 2 +- .../kotlin/com/jakewharton/diffuse/io/Size.kt | 6 +++--- .../com/jakewharton/diffuse/io/SizeTest.kt | 20 +++++++++++++++++++ 4 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 io/src/test/kotlin/com/jakewharton/diffuse/io/SizeTest.kt diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7a588809..9bd9a8f6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,7 +15,7 @@ clikt = "com.github.ajalt.clikt:clikt:5.1.0" junit = "junit:junit:4.13.2" assertk = "com.willowtreeapps.assertk:assertk:0.28.1" okio = "com.squareup.okio:okio:3.16.4" -byteunits = "com.jakewharton.byteunits:byteunits:0.9.1" +bytesize = "me.saket.bytesize:bytesize:2.1.0" asm = "org.ow2.asm:asm:9.9.1" diffUtils = "io.github.java-diff-utils:java-diff-utils:4.16" picnic = "com.jakewharton.picnic:picnic:0.7.0" diff --git a/io/build.gradle b/io/build.gradle index b7e08385..5af774ff 100644 --- a/io/build.gradle +++ b/io/build.gradle @@ -4,7 +4,7 @@ apply plugin: 'org.jetbrains.dokka' dependencies { api libs.okio - implementation libs.byteunits + implementation libs.bytesize testImplementation libs.junit testImplementation libs.assertk diff --git a/io/src/main/kotlin/com/jakewharton/diffuse/io/Size.kt b/io/src/main/kotlin/com/jakewharton/diffuse/io/Size.kt index 52e5f49f..7234a8d8 100644 --- a/io/src/main/kotlin/com/jakewharton/diffuse/io/Size.kt +++ b/io/src/main/kotlin/com/jakewharton/diffuse/io/Size.kt @@ -1,15 +1,15 @@ package com.jakewharton.diffuse.io -import com.jakewharton.byteunits.BinaryByteUnit import kotlin.math.absoluteValue +import me.saket.bytesize.binaryBytes @JvmInline value class Size(val bytes: Long) : Comparable { override fun toString(): String = if (bytes >= 0) { - BinaryByteUnit.format(bytes) + bytes.binaryBytes.toString() } else { - "-" + BinaryByteUnit.format(-bytes) + "-" + (-bytes).binaryBytes.toString() } override fun compareTo(other: Size) = bytes.compareTo(other.bytes) diff --git a/io/src/test/kotlin/com/jakewharton/diffuse/io/SizeTest.kt b/io/src/test/kotlin/com/jakewharton/diffuse/io/SizeTest.kt new file mode 100644 index 00000000..a55d8d88 --- /dev/null +++ b/io/src/test/kotlin/com/jakewharton/diffuse/io/SizeTest.kt @@ -0,0 +1,20 @@ +package com.jakewharton.diffuse.io + +import assertk.assertThat +import assertk.assertions.hasToString +import org.junit.Test + +class SizeTest { + @Test + fun toStringFormatsBytes() { + assertThat(Size(0)).hasToString("0 B") + assertThat(Size(1)).hasToString("1 B") + assertThat(Size(-1)).hasToString("-1 B") + assertThat(Size(1024)).hasToString("1 KiB") + assertThat(Size(-1024)).hasToString("-1 KiB") + assertThat(Size(1024L * 1024)).hasToString("1 MiB") + assertThat(Size(-(1024L * 1024))).hasToString("-1 MiB") + assertThat(Size(1024L * 1024 * 1024)).hasToString("1 GiB") + assertThat(Size(-(1024L * 1024 * 1024))).hasToString("-1 GiB") + } +}