From 4a80ea90a380edb6cd8e54076ed43e37c23c6e34 Mon Sep 17 00:00:00 2001
From: Philip Wedemann <22521688+hfhbd@users.noreply.github.com>
Date: Fri, 28 Jun 2024 13:47:00 +0200
Subject: [PATCH] Switch to multiplatform Parcelize annotation (#337)
* Switch to multiplatform Parcelize annotation
* Fix hierarchical android source sets
* Test hierarchical source set
---
detekt-baseline.xml | 6 +++-
gradle/build-logic/build.gradle.kts | 1 +
.../src/main/kotlin/publish.gradle.kts | 2 ++
gradle/libs.versions.toml | 1 +
.../api/android/kotlinx-uuid-core.api | 22 ++++++-------
.../api/jvm/kotlinx-uuid-core.api | 9 ++----
kotlinx-uuid-core/build.gradle.kts | 9 ++++--
.../kotlinx/uuid/internal/ParcelableTest.kt | 3 +-
.../uuid/internal/CommonParcelable.android.kt | 5 +++
.../uuid/internal/Parcelable.android.kt | 31 -------------------
.../uuid/internal/CommonParcelable.apple.kt | 3 ++
.../kotlinx/uuid/internal/Parcelable.apple.kt | 13 --------
.../commonMain/kotlin/kotlinx/uuid/UUID.kt | 8 ++---
.../kotlinx/uuid/internal/Parcelable.kt | 13 ++------
.../uuid/internal/CommonParcelable.js.kt | 3 ++
.../kotlinx/uuid/internal/Parcelable.js.kt | 13 --------
.../uuid/internal/CommonParcelable.jvm.kt | 3 ++
.../kotlinx/uuid/internal/Parcelable.jvm.kt | 15 ---------
.../uuid/internal/CommonParcelable.linux.kt | 3 ++
.../kotlinx/uuid/internal/Parcelable.linux.kt | 13 --------
.../uuid/internal/CommonParcelable.ming.kt | 3 ++
.../kotlinx/uuid/internal/Parcelable.ming.kt | 13 --------
22 files changed, 57 insertions(+), 135 deletions(-)
create mode 100644 kotlinx-uuid-core/src/androidMain/kotlin/kotlinx/uuid/internal/CommonParcelable.android.kt
delete mode 100644 kotlinx-uuid-core/src/androidMain/kotlin/kotlinx/uuid/internal/Parcelable.android.kt
create mode 100644 kotlinx-uuid-core/src/appleMain/kotlin/kotlinx/uuid/internal/CommonParcelable.apple.kt
delete mode 100644 kotlinx-uuid-core/src/appleMain/kotlin/kotlinx/uuid/internal/Parcelable.apple.kt
create mode 100644 kotlinx-uuid-core/src/jsMain/kotlin/kotlinx/uuid/internal/CommonParcelable.js.kt
delete mode 100644 kotlinx-uuid-core/src/jsMain/kotlin/kotlinx/uuid/internal/Parcelable.js.kt
create mode 100644 kotlinx-uuid-core/src/jvmMain/kotlin/kotlinx/uuid/internal/CommonParcelable.jvm.kt
delete mode 100644 kotlinx-uuid-core/src/jvmMain/kotlin/kotlinx/uuid/internal/Parcelable.jvm.kt
create mode 100644 kotlinx-uuid-core/src/linuxDerivatMain/kotlin/kotlinx/uuid/internal/CommonParcelable.linux.kt
delete mode 100644 kotlinx-uuid-core/src/linuxDerivatMain/kotlin/kotlinx/uuid/internal/Parcelable.linux.kt
create mode 100644 kotlinx-uuid-core/src/mingwX64Main/kotlin/kotlinx/uuid/internal/CommonParcelable.ming.kt
delete mode 100644 kotlinx-uuid-core/src/mingwX64Main/kotlin/kotlinx/uuid/internal/Parcelable.ming.kt
diff --git a/detekt-baseline.xml b/detekt-baseline.xml
index 1a34df6..c80b96c 100644
--- a/detekt-baseline.xml
+++ b/detekt-baseline.xml
@@ -91,7 +91,11 @@
MagicNumber:UUID7.kt$0x80L
MagicNumber:UUID7.kt$12
MagicNumber:UUID7.kt$16
- MatchingDeclarationName:Parcelable.android.kt$Parcelable : Parcelable
+ MatchingDeclarationName:CommonParcelable.apple.kt$CommonParcelable
+ MatchingDeclarationName:CommonParcelable.js.kt$CommonParcelable
+ MatchingDeclarationName:CommonParcelable.jvm.kt$CommonParcelable
+ MatchingDeclarationName:CommonParcelable.linux.kt$CommonParcelable
+ MatchingDeclarationName:CommonParcelable.ming.kt$CommonParcelable
TooManyFunctions:SHA1.kt$SHA1
VariableNaming:UUID7.kt$val rand_a = random.nextBits(12).toLong()
diff --git a/gradle/build-logic/build.gradle.kts b/gradle/build-logic/build.gradle.kts
index b19058b..4202fa6 100644
--- a/gradle/build-logic/build.gradle.kts
+++ b/gradle/build-logic/build.gradle.kts
@@ -5,6 +5,7 @@ plugins {
dependencies {
implementation(libs.plugins.kotlin.jvm.toDep())
implementation(libs.plugins.kotlin.serialization.toDep())
+ implementation(libs.plugins.kotlin.parcelize.toDep())
implementation(libs.plugins.android.toDep())
implementation(libs.plugins.binary.toDep())
implementation(libs.plugins.publish.toDep())
diff --git a/gradle/build-logic/src/main/kotlin/publish.gradle.kts b/gradle/build-logic/src/main/kotlin/publish.gradle.kts
index 866ccab..60aef65 100644
--- a/gradle/build-logic/src/main/kotlin/publish.gradle.kts
+++ b/gradle/build-logic/src/main/kotlin/publish.gradle.kts
@@ -58,4 +58,6 @@ tasks.withType().configureEach {
tasks.withType().configureEach {
isPreserveFileTimestamps = false
isReproducibleFileOrder = true
+ filePermissions {}
+ dirPermissions {}
}
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 1413167..2b7306a 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -19,6 +19,7 @@ sqldelight-runtime = { module = "app.cash.sqldelight:runtime", version = "2.0.2"
[plugins]
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
+kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }
android = { id = "com.android.application", version = "8.5.0" }
binary = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version = "0.14.0" }
publish = { id = "io.github.gradle-nexus.publish-plugin", version = "2.0.0" }
diff --git a/kotlinx-uuid-core/api/android/kotlinx-uuid-core.api b/kotlinx-uuid-core/api/android/kotlinx-uuid-core.api
index 9786fcb..85dc776 100644
--- a/kotlinx-uuid-core/api/android/kotlinx-uuid-core.api
+++ b/kotlinx-uuid-core/api/android/kotlinx-uuid-core.api
@@ -62,7 +62,7 @@ public final class kotlinx/uuid/Serializer$WrappedCurlyBrackets : kotlinx/uuid/S
public static final field INSTANCE Lkotlinx/uuid/Serializer$WrappedCurlyBrackets;
}
-public final class kotlinx/uuid/UUID : kotlinx/uuid/internal/Parcelable, java/lang/Comparable {
+public final class kotlinx/uuid/UUID : android/os/Parcelable, java/lang/Comparable {
public static final field CREATOR Landroid/os/Parcelable$Creator;
public static final field Companion Lkotlinx/uuid/UUID$Companion;
public fun ()V
@@ -73,6 +73,7 @@ public final class kotlinx/uuid/UUID : kotlinx/uuid/internal/Parcelable, java/la
public synthetic fun (Lkotlinx/uuid/UUID$Version;JIJIILkotlin/jvm/internal/DefaultConstructorMarker;)V
public synthetic fun compareTo (Ljava/lang/Object;)I
public fun compareTo (Lkotlinx/uuid/UUID;)I
+ public final fun describeContents ()I
public fun equals (Ljava/lang/Object;)Z
public final fun getClockSequence ()I
public final fun getNode ()J
@@ -84,6 +85,7 @@ public final class kotlinx/uuid/UUID : kotlinx/uuid/internal/Parcelable, java/la
public final fun isRfcVariant ()Z
public fun toString ()Ljava/lang/String;
public final fun toString (Z)Ljava/lang/String;
+ public final fun writeToParcel (Landroid/os/Parcel;I)V
}
public final class kotlinx/uuid/UUID$Companion {
@@ -92,6 +94,14 @@ public final class kotlinx/uuid/UUID$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
+public final class kotlinx/uuid/UUID$Creator : android/os/Parcelable$Creator {
+ public fun ()V
+ public synthetic fun createFromParcel (Landroid/os/Parcel;)Ljava/lang/Object;
+ public final fun createFromParcel (Landroid/os/Parcel;)Lkotlinx/uuid/UUID;
+ public synthetic fun newArray (I)[Ljava/lang/Object;
+ public final fun newArray (I)[Lkotlinx/uuid/UUID;
+}
+
public final class kotlinx/uuid/UUID$Version : java/lang/Enum {
public static final field DCE_SECURITY Lkotlinx/uuid/UUID$Version;
public static final field NAME_BASED_MD5 Lkotlinx/uuid/UUID$Version;
@@ -118,13 +128,3 @@ public final class kotlinx/uuid/UUIDKt {
public static final fun toUUIDOrNull (Ljava/lang/String;)Lkotlinx/uuid/UUID;
}
-public abstract class kotlinx/uuid/internal/Parcelable : android/os/Parcelable {
- public fun (JJ)V
- public fun describeContents ()I
- public fun writeToParcel (Landroid/os/Parcel;I)V
-}
-
-public final class kotlinx/uuid/internal/Parcelable_androidKt {
- public static final fun getCreator ()Landroid/os/Parcelable$Creator;
-}
-
diff --git a/kotlinx-uuid-core/api/jvm/kotlinx-uuid-core.api b/kotlinx-uuid-core/api/jvm/kotlinx-uuid-core.api
index 4a3c1ca..97d07cc 100644
--- a/kotlinx-uuid-core/api/jvm/kotlinx-uuid-core.api
+++ b/kotlinx-uuid-core/api/jvm/kotlinx-uuid-core.api
@@ -67,8 +67,7 @@ public final class kotlinx/uuid/Serializer$WrappedCurlyBrackets : kotlinx/uuid/S
public static final field INSTANCE Lkotlinx/uuid/Serializer$WrappedCurlyBrackets;
}
-public final class kotlinx/uuid/UUID : kotlinx/uuid/internal/Parcelable, java/lang/Comparable {
- public static final field CREATOR Lkotlinx/uuid/internal/ParcelableCreator;
+public final class kotlinx/uuid/UUID : java/lang/Comparable, kotlinx/uuid/internal/CommonParcelable {
public static final field Companion Lkotlinx/uuid/UUID$Companion;
public fun ()V
public fun (IJIJI)V
@@ -123,10 +122,6 @@ public final class kotlinx/uuid/UUIDKt {
public static final fun toUUIDOrNull (Ljava/lang/String;)Lkotlinx/uuid/UUID;
}
-public abstract class kotlinx/uuid/internal/Parcelable {
- public fun (JJ)V
-}
-
-public abstract interface class kotlinx/uuid/internal/ParcelableCreator {
+public abstract interface class kotlinx/uuid/internal/CommonParcelable {
}
diff --git a/kotlinx-uuid-core/build.gradle.kts b/kotlinx-uuid-core/build.gradle.kts
index f46163c..d8a74f6 100644
--- a/kotlinx-uuid-core/build.gradle.kts
+++ b/kotlinx-uuid-core/build.gradle.kts
@@ -11,14 +11,15 @@ plugins {
id("dokkaLicensee")
id("kover")
id("com.android.library")
+ kotlin("plugin.parcelize")
}
kotlin {
applyDefaultHierarchyTemplate {
common {
group("linuxDerivat") {
- withAndroidNative()
- withLinux()
+ group("androidNative")
+ group("linux")
}
}
}
@@ -80,4 +81,8 @@ kotlin {
}
}
}
+ compilerOptions.freeCompilerArgs.addAll(
+ "-P",
+ "plugin:org.jetbrains.kotlin.parcelize:additionalAnnotation=kotlinx.uuid.internal.CommonParcelize",
+ )
}
diff --git a/kotlinx-uuid-core/src/androidInstrumentedTest/kotlin/kotlinx/uuid/internal/ParcelableTest.kt b/kotlinx-uuid-core/src/androidInstrumentedTest/kotlin/kotlinx/uuid/internal/ParcelableTest.kt
index 2bd2dde..a36dddc 100644
--- a/kotlinx-uuid-core/src/androidInstrumentedTest/kotlin/kotlinx/uuid/internal/ParcelableTest.kt
+++ b/kotlinx-uuid-core/src/androidInstrumentedTest/kotlin/kotlinx/uuid/internal/ParcelableTest.kt
@@ -2,6 +2,7 @@ package kotlinx.uuid.internal
import android.os.Parcel
import androidx.test.ext.junit.runners.*
+import kotlinx.parcelize.parcelableCreator
import kotlinx.uuid.*
import org.junit.runner.*
import kotlin.test.*
@@ -14,6 +15,6 @@ class ParcelableTest {
val uuid = UUID(SOME_UUID_STRING)
uuid.writeToParcel(parcel, uuid.describeContents())
parcel.setDataPosition(0)
- assertEquals(uuid, UUID.CREATOR.createFromParcel(parcel))
+ assertEquals(uuid, parcelableCreator().createFromParcel(parcel))
}
}
diff --git a/kotlinx-uuid-core/src/androidMain/kotlin/kotlinx/uuid/internal/CommonParcelable.android.kt b/kotlinx-uuid-core/src/androidMain/kotlin/kotlinx/uuid/internal/CommonParcelable.android.kt
new file mode 100644
index 0000000..b0f1a52
--- /dev/null
+++ b/kotlinx-uuid-core/src/androidMain/kotlin/kotlinx/uuid/internal/CommonParcelable.android.kt
@@ -0,0 +1,5 @@
+package kotlinx.uuid.internal
+
+import android.os.*
+
+public actual typealias CommonParcelable = Parcelable
diff --git a/kotlinx-uuid-core/src/androidMain/kotlin/kotlinx/uuid/internal/Parcelable.android.kt b/kotlinx-uuid-core/src/androidMain/kotlin/kotlinx/uuid/internal/Parcelable.android.kt
deleted file mode 100644
index 120194b..0000000
--- a/kotlinx-uuid-core/src/androidMain/kotlin/kotlinx/uuid/internal/Parcelable.android.kt
+++ /dev/null
@@ -1,31 +0,0 @@
-@file:Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING")
-
-package kotlinx.uuid.internal
-
-import android.os.*
-import kotlinx.uuid.*
-
-public actual abstract class Parcelable actual constructor(
- private val timeStampAndVersionRaw: Long,
- private val clockSequenceVariantAndNodeRaw: Long
-) : android.os.Parcelable {
- override fun describeContents(): Int = 0
- override fun writeToParcel(parcel: Parcel, flags: Int) {
- parcel.writeLong(timeStampAndVersionRaw)
- parcel.writeLong(clockSequenceVariantAndNodeRaw)
- }
-}
-
-internal actual typealias ParcelableCreator = android.os.Parcelable.Creator
-
-public actual val creator: ParcelableCreator = object : android.os.Parcelable.Creator {
- override fun createFromParcel(parcel: Parcel): UUID {
- val timeStampAndVersionRaw = parcel.readLong()
- val clockSequenceVariantAndNodeRaw = parcel.readLong()
- return UUID(timeStampAndVersionRaw, clockSequenceVariantAndNodeRaw)
- }
-
- override fun newArray(size: Int): Array {
- return arrayOfNulls(size)
- }
-}
diff --git a/kotlinx-uuid-core/src/appleMain/kotlin/kotlinx/uuid/internal/CommonParcelable.apple.kt b/kotlinx-uuid-core/src/appleMain/kotlin/kotlinx/uuid/internal/CommonParcelable.apple.kt
new file mode 100644
index 0000000..76c06b9
--- /dev/null
+++ b/kotlinx-uuid-core/src/appleMain/kotlin/kotlinx/uuid/internal/CommonParcelable.apple.kt
@@ -0,0 +1,3 @@
+package kotlinx.uuid.internal
+
+public actual interface CommonParcelable
diff --git a/kotlinx-uuid-core/src/appleMain/kotlin/kotlinx/uuid/internal/Parcelable.apple.kt b/kotlinx-uuid-core/src/appleMain/kotlin/kotlinx/uuid/internal/Parcelable.apple.kt
deleted file mode 100644
index b4aef6c..0000000
--- a/kotlinx-uuid-core/src/appleMain/kotlin/kotlinx/uuid/internal/Parcelable.apple.kt
+++ /dev/null
@@ -1,13 +0,0 @@
-package kotlinx.uuid.internal
-
-import kotlinx.uuid.*
-
-@Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING")
-public actual abstract class Parcelable actual constructor(
- timeStampAndVersionRaw: Long,
- clockSequenceVariantAndNodeRaw: Long
-)
-
-public actual interface ParcelableCreator
-
-internal actual val creator: ParcelableCreator = object : ParcelableCreator {}
diff --git a/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/UUID.kt b/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/UUID.kt
index 9d04b8f..e6e1652 100644
--- a/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/UUID.kt
+++ b/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/UUID.kt
@@ -12,11 +12,12 @@ import kotlin.jvm.*
* This type represents a UUID as per RFC
* See: https://tools.ietf.org/html/rfc4122
*/
+@CommonParcelize
@Serializable(with = Serializer.Default::class)
public class UUID internal constructor(
internal val timeStampAndVersionRaw: Long,
internal val clockSequenceVariantAndNodeRaw: Long,
-) : Parcelable(timeStampAndVersionRaw, clockSequenceVariantAndNodeRaw), Comparable {
+) : CommonParcelable, Comparable {
private constructor(
helper: UUID
) : this(
@@ -26,7 +27,7 @@ public class UUID internal constructor(
/**
* Creates an instance by the string [uuid] representation.
- * An input string should consist of five hexademical parts
+ * An input string should consist of five hexadecimal parts
* separated with the minus character, and optionally surrounded with curly brackets.
* The space and tab characters are ignored at the end and at the beginning
* and surrounding brackets and minus characters.
@@ -206,9 +207,6 @@ public class UUID internal constructor(
}
private fun versionFor(id: Int): Version? = Version.entries.firstOrNull { it.id == id }
-
- @JvmField
- public val CREATOR: ParcelableCreator = creator
}
}
diff --git a/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/internal/Parcelable.kt b/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/internal/Parcelable.kt
index 0ef753a..15c6dd3 100644
--- a/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/internal/Parcelable.kt
+++ b/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/internal/Parcelable.kt
@@ -1,13 +1,6 @@
package kotlinx.uuid.internal
-import kotlinx.uuid.*
+@Target(AnnotationTarget.CLASS)
+internal annotation class CommonParcelize
-@Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING")
-public expect abstract class Parcelable(
- timeStampAndVersionRaw: Long,
- clockSequenceVariantAndNodeRaw: Long
-)
-
-public expect interface ParcelableCreator
-
-internal expect val creator: ParcelableCreator
+public expect interface CommonParcelable
diff --git a/kotlinx-uuid-core/src/jsMain/kotlin/kotlinx/uuid/internal/CommonParcelable.js.kt b/kotlinx-uuid-core/src/jsMain/kotlin/kotlinx/uuid/internal/CommonParcelable.js.kt
new file mode 100644
index 0000000..76c06b9
--- /dev/null
+++ b/kotlinx-uuid-core/src/jsMain/kotlin/kotlinx/uuid/internal/CommonParcelable.js.kt
@@ -0,0 +1,3 @@
+package kotlinx.uuid.internal
+
+public actual interface CommonParcelable
diff --git a/kotlinx-uuid-core/src/jsMain/kotlin/kotlinx/uuid/internal/Parcelable.js.kt b/kotlinx-uuid-core/src/jsMain/kotlin/kotlinx/uuid/internal/Parcelable.js.kt
deleted file mode 100644
index b4aef6c..0000000
--- a/kotlinx-uuid-core/src/jsMain/kotlin/kotlinx/uuid/internal/Parcelable.js.kt
+++ /dev/null
@@ -1,13 +0,0 @@
-package kotlinx.uuid.internal
-
-import kotlinx.uuid.*
-
-@Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING")
-public actual abstract class Parcelable actual constructor(
- timeStampAndVersionRaw: Long,
- clockSequenceVariantAndNodeRaw: Long
-)
-
-public actual interface ParcelableCreator
-
-internal actual val creator: ParcelableCreator = object : ParcelableCreator {}
diff --git a/kotlinx-uuid-core/src/jvmMain/kotlin/kotlinx/uuid/internal/CommonParcelable.jvm.kt b/kotlinx-uuid-core/src/jvmMain/kotlin/kotlinx/uuid/internal/CommonParcelable.jvm.kt
new file mode 100644
index 0000000..76c06b9
--- /dev/null
+++ b/kotlinx-uuid-core/src/jvmMain/kotlin/kotlinx/uuid/internal/CommonParcelable.jvm.kt
@@ -0,0 +1,3 @@
+package kotlinx.uuid.internal
+
+public actual interface CommonParcelable
diff --git a/kotlinx-uuid-core/src/jvmMain/kotlin/kotlinx/uuid/internal/Parcelable.jvm.kt b/kotlinx-uuid-core/src/jvmMain/kotlin/kotlinx/uuid/internal/Parcelable.jvm.kt
deleted file mode 100644
index 0f25577..0000000
--- a/kotlinx-uuid-core/src/jvmMain/kotlin/kotlinx/uuid/internal/Parcelable.jvm.kt
+++ /dev/null
@@ -1,15 +0,0 @@
-@file:Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING")
-
-package kotlinx.uuid.internal
-
-import kotlinx.uuid.*
-
-public actual abstract class Parcelable actual constructor(
- timeStampAndVersionRaw: Long,
- clockSequenceVariantAndNodeRaw: Long
-)
-
-public actual interface ParcelableCreator
-
-internal actual val creator: ParcelableCreator = object : ParcelableCreator {
-}
diff --git a/kotlinx-uuid-core/src/linuxDerivatMain/kotlin/kotlinx/uuid/internal/CommonParcelable.linux.kt b/kotlinx-uuid-core/src/linuxDerivatMain/kotlin/kotlinx/uuid/internal/CommonParcelable.linux.kt
new file mode 100644
index 0000000..76c06b9
--- /dev/null
+++ b/kotlinx-uuid-core/src/linuxDerivatMain/kotlin/kotlinx/uuid/internal/CommonParcelable.linux.kt
@@ -0,0 +1,3 @@
+package kotlinx.uuid.internal
+
+public actual interface CommonParcelable
diff --git a/kotlinx-uuid-core/src/linuxDerivatMain/kotlin/kotlinx/uuid/internal/Parcelable.linux.kt b/kotlinx-uuid-core/src/linuxDerivatMain/kotlin/kotlinx/uuid/internal/Parcelable.linux.kt
deleted file mode 100644
index b4aef6c..0000000
--- a/kotlinx-uuid-core/src/linuxDerivatMain/kotlin/kotlinx/uuid/internal/Parcelable.linux.kt
+++ /dev/null
@@ -1,13 +0,0 @@
-package kotlinx.uuid.internal
-
-import kotlinx.uuid.*
-
-@Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING")
-public actual abstract class Parcelable actual constructor(
- timeStampAndVersionRaw: Long,
- clockSequenceVariantAndNodeRaw: Long
-)
-
-public actual interface ParcelableCreator
-
-internal actual val creator: ParcelableCreator = object : ParcelableCreator {}
diff --git a/kotlinx-uuid-core/src/mingwX64Main/kotlin/kotlinx/uuid/internal/CommonParcelable.ming.kt b/kotlinx-uuid-core/src/mingwX64Main/kotlin/kotlinx/uuid/internal/CommonParcelable.ming.kt
new file mode 100644
index 0000000..76c06b9
--- /dev/null
+++ b/kotlinx-uuid-core/src/mingwX64Main/kotlin/kotlinx/uuid/internal/CommonParcelable.ming.kt
@@ -0,0 +1,3 @@
+package kotlinx.uuid.internal
+
+public actual interface CommonParcelable
diff --git a/kotlinx-uuid-core/src/mingwX64Main/kotlin/kotlinx/uuid/internal/Parcelable.ming.kt b/kotlinx-uuid-core/src/mingwX64Main/kotlin/kotlinx/uuid/internal/Parcelable.ming.kt
deleted file mode 100644
index b4aef6c..0000000
--- a/kotlinx-uuid-core/src/mingwX64Main/kotlin/kotlinx/uuid/internal/Parcelable.ming.kt
+++ /dev/null
@@ -1,13 +0,0 @@
-package kotlinx.uuid.internal
-
-import kotlinx.uuid.*
-
-@Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING")
-public actual abstract class Parcelable actual constructor(
- timeStampAndVersionRaw: Long,
- clockSequenceVariantAndNodeRaw: Long
-)
-
-public actual interface ParcelableCreator
-
-internal actual val creator: ParcelableCreator = object : ParcelableCreator {}