diff --git a/CHANGELOG.md b/CHANGELOG.md index ddae077..21f7ffb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Change log +## v0.6.0 / 2024-11-29 + +* add conversion functions to convert Vert.x `Buffer`s to kotlinx-io `RawSink`s and `Sink`s and Okio `Sink`s and `BufferedSink`s + + The `Source` conversion functions are not provided because Vert.x `Buffer` doesn't provide reading methods with a reader index. + +* adapt to the [Exposed SELECT DSL design changes](https://github.com/JetBrains/Exposed/pull/1916) and bump Exposed to v0.56.0 + + The old `deleteWhereStatement` that conflicts with the new one is removed, causing a source and binary incompatible change. + +* add API documentation generated by Dokka hosted at +* add CODE_OF_CONDUCT.md and CONTRIBUTING.md +* use the Kotlin binary compatibility validator +* add some experimental plus operators for nullable functions/lambdas +* add some common functions for Exposed and Vert.x SQL Client such as `jdbcUrl`, `ClientBuilder<*>.withCoConnectHandler`, and `SqlConnectOptions.setUpConventionally` +* add a `CoroutineAutoCloseable` interface like `AutoCloseable` and its version of the `use` extension function + ## v0.5.1 / 2024-10-19 * enable the iOS targets for the "coroutines" module, which was disabled due to a compiler bug diff --git a/build.gradle.kts b/build.gradle.kts index fd4ed1c..320e774 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -33,4 +33,10 @@ apiValidation { klib { enabled = true } + + ignoredProjects += "kotlin-common".let { + "$it-serialization-benchmark".let { + listOf(it, "$it-jvm-only") + } + "$it-vertx-with-context-receivers" + } } diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 6a6f9e2..2ec3da5 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -16,8 +16,8 @@ repositories { dependencies { // With Kotlin 2.0.20, a "Could not parse POM" build error occurs in the JVM projects of some dependent projects. - implementation(kotlin("gradle-plugin", "2.0.10")) + implementation(kotlin("gradle-plugin", "2.1.0")) implementation("com.huanshankeji:common-gradle-dependencies:0.8.0-20241016") // don't use a snapshot version in a main branch - implementation("com.huanshankeji.team:gradle-plugins:0.6.0") // don't use a snapshot version in a main branch + implementation("com.huanshankeji.team:gradle-plugins:0.8.0") // don't use a snapshot version in a main branch implementation("org.jetbrains.dokka:dokka-gradle-plugin:2.0.0-Beta") } diff --git a/buildSrc/src/main/kotlin/OptIns.kt b/buildSrc/src/main/kotlin/OptIns.kt new file mode 100644 index 0000000..4a60d6b --- /dev/null +++ b/buildSrc/src/main/kotlin/OptIns.kt @@ -0,0 +1,4 @@ +val optIns = listOf("com.huanshankeji.InternalApi", "com.huanshankeji.ExperimentalApi") + +inline fun forEachOptIn(action: (String) -> Unit) = + optIns.forEach(action) diff --git a/buildSrc/src/main/kotlin/VersionsAndDependencies.kt b/buildSrc/src/main/kotlin/VersionsAndDependencies.kt index fcaad37..52b06b7 100644 --- a/buildSrc/src/main/kotlin/VersionsAndDependencies.kt +++ b/buildSrc/src/main/kotlin/VersionsAndDependencies.kt @@ -2,9 +2,9 @@ import com.huanshankeji.CommonDependencies import com.huanshankeji.CommonGradleClasspathDependencies import com.huanshankeji.CommonVersions -val projectVersion = "0.6.0-SNAPSHOT" +val projectVersion = "0.6.1-SNAPSHOT" -val commonVersions = CommonVersions(arrow = "2.0.0-rc.1") // for Wasm JS +val commonVersions = CommonVersions(arrow = "2.0.0-rc.1" /* for Wasm JS*/, exposed = "0.56.0") val commonDependencies = CommonDependencies(commonVersions) val commonGradleClasspathDependencies = CommonGradleClasspathDependencies(commonVersions) diff --git a/buildSrc/src/main/kotlin/common-conventions.gradle.kts b/buildSrc/src/main/kotlin/common-conventions.gradle.kts index 4d9114e..f28cfc1 100644 --- a/buildSrc/src/main/kotlin/common-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/common-conventions.gradle.kts @@ -5,11 +5,10 @@ plugins { id("com.huanshankeji.team.with-group") id("maven-central") id("com.huanshankeji.team.default-github-packages-maven-publish") + id("version") id("dokka-convention") } -version = projectVersion - afterEvaluate { publishing.publications.withType { pomForTeamDefaultOpenSource( diff --git a/buildSrc/src/main/kotlin/dokka-convention.gradle.kts b/buildSrc/src/main/kotlin/dokka-convention.gradle.kts index d214a55..e3c4746 100644 --- a/buildSrc/src/main/kotlin/dokka-convention.gradle.kts +++ b/buildSrc/src/main/kotlin/dokka-convention.gradle.kts @@ -1,22 +1,11 @@ plugins { - id("org.jetbrains.dokka") + id("com.huanshankeji.team.dokka.github-dokka-convention") } dokka { //moduleName.set("Huanshankeji Kotlin Common") dokkaSourceSets.all { //includes.from("README.md") - sourceLink { - //localDirectory.set(file("src/main/kotlin")) - remoteUrl( - "https://github.com/huanshankeji/kotlin-common/tree/v${version}/${ - with(project) { - name.removePrefix(parent!!.name + '-') - } - }" - ) - remoteLineSuffix.set("#L") - } /*pluginsConfiguration.html { footerMessage.set("(c) Yongshun Ye") }*/ diff --git a/buildSrc/src/main/kotlin/jvm-conventions.gradle.kts b/buildSrc/src/main/kotlin/jvm-conventions.gradle.kts index eb19168..64b1a0b 100644 --- a/buildSrc/src/main/kotlin/jvm-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/jvm-conventions.gradle.kts @@ -1,6 +1,12 @@ +import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask + plugins { id("common-conventions") id("com.huanshankeji.kotlin-jvm-library-sonatype-ossrh-publish-conventions") } kotlin.jvmToolchain(8) + +tasks.named>("compileKotlin").configure { + forEachOptIn { compilerOptions.freeCompilerArgs.add("-opt-in=$it") } +} diff --git a/buildSrc/src/main/kotlin/multiplatform-conventions.gradle.kts b/buildSrc/src/main/kotlin/multiplatform-conventions.gradle.kts index 49e1d08..6e8500f 100644 --- a/buildSrc/src/main/kotlin/multiplatform-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/multiplatform-conventions.gradle.kts @@ -11,4 +11,10 @@ kotlin { @OptIn(ExperimentalWasmDsl::class) wasmJs() + + sourceSets { + all { + forEachOptIn(languageSettings::optIn) + } + } } diff --git a/buildSrc/src/main/kotlin/version.gradle.kts b/buildSrc/src/main/kotlin/version.gradle.kts new file mode 100644 index 0000000..ad0ecbd --- /dev/null +++ b/buildSrc/src/main/kotlin/version.gradle.kts @@ -0,0 +1,3 @@ +// extracted into a separate script so the version can be set before `dokka-convention` + +version = projectVersion diff --git a/core/api/kotlin-common-core.api b/core/api/kotlin-common-core.api index e7c9f9d..2d448e1 100644 --- a/core/api/kotlin-common-core.api +++ b/core/api/kotlin-common-core.api @@ -3,6 +3,16 @@ public abstract interface class com/huanshankeji/BidirectionalConversion { public abstract fun to (Ljava/lang/Object;)Ljava/lang/Object; } +public abstract interface annotation class com/huanshankeji/ExperimentalApi : java/lang/annotation/Annotation { +} + +public final class com/huanshankeji/FunctionImplementationRemovedKt { + public static final fun functionImplementationRemoved ()Ljava/lang/Void; +} + +public abstract interface annotation class com/huanshankeji/InternalApi : java/lang/annotation/Annotation { +} + public final class com/huanshankeji/LambdasKt { public static final fun emptyLambda ()Lkotlin/jvm/functions/Function0; public static final fun lambdaOf (Lkotlin/jvm/functions/Function0;)Lkotlin/jvm/functions/Function0; @@ -45,6 +55,10 @@ public final class com/huanshankeji/collections/LexicographicOrderListComparable public static final fun lexicographicOrderComparable (Ljava/util/List;)Lcom/huanshankeji/collections/LexicographicOrderListComparable; } +public final class com/huanshankeji/jdbc/JdbcUrlsKt { + public static final fun jdbcUrl (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;)Ljava/lang/String; +} + public final class com/huanshankeji/kotlin/CallbacksKt { public static final fun produceInCallback (Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; } @@ -58,6 +72,14 @@ public final class com/huanshankeji/kotlin/UseKt { public static final fun use (Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; } +public final class com/huanshankeji/kotlin/function/parametertypeparameter/NullableUnitReturnTypeParameterFunctionKt { + public static final fun plus (Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Lkotlin/jvm/functions/Function1; +} + +public final class com/huanshankeji/kotlin/function/receivertypeparameter/NullableUnitReturnTypeReceiverFunctionKt { + public static final fun plus (Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Lkotlin/jvm/functions/Function1; +} + public final class com/huanshankeji/os/OSKt { public static final fun getCurrentOS ()Lcom/huanshankeji/os/Os; public static final fun getSystemOsName ()Ljava/lang/String; diff --git a/core/api/kotlin-common-core.klib.api b/core/api/kotlin-common-core.klib.api index a340b3e..e4a34a0 100644 --- a/core/api/kotlin-common-core.klib.api +++ b/core/api/kotlin-common-core.klib.api @@ -6,6 +6,14 @@ // - Show declarations: true // Library unique name: +open annotation class com.huanshankeji/ExperimentalApi : kotlin/Annotation { // com.huanshankeji/ExperimentalApi|null[0] + constructor () // com.huanshankeji/ExperimentalApi.|(){}[0] +} + +open annotation class com.huanshankeji/InternalApi : kotlin/Annotation { // com.huanshankeji/InternalApi|null[0] + constructor () // com.huanshankeji/InternalApi.|(){}[0] +} + open annotation class com.huanshankeji/Untested : kotlin/Annotation { // com.huanshankeji/Untested|null[0] constructor () // com.huanshankeji/Untested.|(){}[0] } @@ -64,6 +72,7 @@ final fun <#A: kotlin/Any?> (kotlin.sequences/Sequence<#A>).com.huanshankeji.seq final fun <#A: kotlin/Comparable<#A>> (kotlin.collections/List<#A>).com.huanshankeji.collections/lexicographicOrderComparable(): com.huanshankeji.collections/LexicographicOrderListComparable<#A> // com.huanshankeji.collections/lexicographicOrderComparable|lexicographicOrderComparable@kotlin.collections.List<0:0>(){0§>}[0] final fun <#A: kotlin/Enum<#A>> com.huanshankeji.kotlin/enumPlus(kotlin/Array<#A>, #A, kotlin/Int): #A // com.huanshankeji.kotlin/enumPlus|enumPlus(kotlin.Array<0:0>;0:0;kotlin.Int){0§>}[0] final fun com.huanshankeji.codec/uLongBigEndianShiftOffset(kotlin/Int): kotlin/Int // com.huanshankeji.codec/uLongBigEndianShiftOffset|uLongBigEndianShiftOffset(kotlin.Int){}[0] +final fun com.huanshankeji/functionImplementationRemoved(): kotlin/Nothing // com.huanshankeji/functionImplementationRemoved|functionImplementationRemoved(){}[0] final inline fun <#A: kotlin/Any> com.huanshankeji.kotlin/produceInCallback(kotlin/Function1, kotlin/Unit>): #A // com.huanshankeji.kotlin/produceInCallback|produceInCallback(kotlin.Function1,kotlin.Unit>){0§}[0] final inline fun <#A: kotlin/Any?, #B: kotlin/Any?> (#A).com.huanshankeji.kotlin/use(kotlin/Function1<#A, #B>, kotlin/Function1<#A, kotlin/Unit>): #B // com.huanshankeji.kotlin/use|use@0:0(kotlin.Function1<0:0,0:1>;kotlin.Function1<0:0,kotlin.Unit>){0§;1§}[0] final inline fun <#A: kotlin/Any?, #B: kotlin/Any?> com.huanshankeji/lambdaOf(noinline kotlin/Function1<#A, #B>): kotlin/Function1<#A, #B> // com.huanshankeji/lambdaOf|lambdaOf(kotlin.Function1<0:0,0:1>){0§;1§}[0] @@ -72,6 +81,8 @@ final inline fun <#A: kotlin/Any?, #B: kotlin/Comparable<#B>> (kotlin.collection final inline fun <#A: kotlin/Any?, #B: kotlin/Comparable<#B>> (kotlin.sequences/Sequence<#A>).com.huanshankeji.sequences/isSortedBy(crossinline kotlin/Function1<#A, #B?>): kotlin/Boolean // com.huanshankeji.sequences/isSortedBy|isSortedBy@kotlin.sequences.Sequence<0:0>(kotlin.Function1<0:0,0:1?>){0§;1§>}[0] final inline fun <#A: kotlin/Any?, #B: kotlin/Comparable<#B>> (kotlin.sequences/Sequence<#A>).com.huanshankeji.sequences/isSortedByDescending(crossinline kotlin/Function1<#A, #B?>): kotlin/Boolean // com.huanshankeji.sequences/isSortedByDescending|isSortedByDescending@kotlin.sequences.Sequence<0:0>(kotlin.Function1<0:0,0:1?>){0§;1§>}[0] final inline fun <#A: kotlin/Any?> (#A).com.huanshankeji.kotlin/closeFinally(kotlin/Throwable?, kotlin/Function1<#A, kotlin/Unit>) // com.huanshankeji.kotlin/closeFinally|closeFinally@0:0(kotlin.Throwable?;kotlin.Function1<0:0,kotlin.Unit>){0§}[0] +final inline fun <#A: kotlin/Any?> (kotlin/Function1<#A, kotlin/Unit>?).com.huanshankeji.kotlin.function.parametertypeparameter/plus(noinline kotlin/Function1<#A, kotlin/Unit>?): kotlin/Function1<#A, kotlin/Unit>? // com.huanshankeji.kotlin.function.parametertypeparameter/plus|plus@kotlin.Function1<0:0,kotlin.Unit>?(kotlin.Function1<0:0,kotlin.Unit>?){0§}[0] +final inline fun <#A: kotlin/Any?> (kotlin/Function1<#A, kotlin/Unit>?).com.huanshankeji.kotlin.function.receivertypeparameter/plus(noinline kotlin/Function1<#A, kotlin/Unit>?): kotlin/Function1<#A, kotlin/Unit>? // com.huanshankeji.kotlin.function.receivertypeparameter/plus|plus@kotlin.Function1<0:0,kotlin.Unit>?(kotlin.Function1<0:0,kotlin.Unit>?){0§}[0] final inline fun <#A: kotlin/Comparable<#A>> (kotlin.collections/Iterable<#A>).com.huanshankeji.collections/isSorted(): kotlin/Boolean // com.huanshankeji.collections/isSorted|isSorted@kotlin.collections.Iterable<0:0>(){0§>}[0] final inline fun <#A: kotlin/Comparable<#A>> (kotlin.collections/Iterable<#A>).com.huanshankeji.collections/isSortedDescending(): kotlin/Boolean // com.huanshankeji.collections/isSortedDescending|isSortedDescending@kotlin.collections.Iterable<0:0>(){0§>}[0] final inline fun <#A: kotlin/Comparable<#A>> (kotlin.sequences/Sequence<#A>).com.huanshankeji.sequences/isSorted(): kotlin/Boolean // com.huanshankeji.sequences/isSorted|isSorted@kotlin.sequences.Sequence<0:0>(){0§>}[0] diff --git a/core/src/commonMain/kotlin/com/huanshankeji/ExperimentalApi.kt b/core/src/commonMain/kotlin/com/huanshankeji/ExperimentalApi.kt new file mode 100644 index 0000000..ab1f412 --- /dev/null +++ b/core/src/commonMain/kotlin/com/huanshankeji/ExperimentalApi.kt @@ -0,0 +1,5 @@ +package com.huanshankeji + +@RequiresOptIn("This API is experimental. It may be changed in the future without notice.", RequiresOptIn.Level.WARNING) +@Retention(AnnotationRetention.BINARY) +annotation class ExperimentalApi diff --git a/core/src/commonMain/kotlin/com/huanshankeji/FunctionImplementationRemoved.kt b/core/src/commonMain/kotlin/com/huanshankeji/FunctionImplementationRemoved.kt new file mode 100644 index 0000000..26b3bf6 --- /dev/null +++ b/core/src/commonMain/kotlin/com/huanshankeji/FunctionImplementationRemoved.kt @@ -0,0 +1,5 @@ +package com.huanshankeji + +@ExperimentalApi +fun functionImplementationRemoved(): Nothing = + throw NotImplementedError("This function's implementation has been removed and the function will be removed too in the future.") diff --git a/core/src/commonMain/kotlin/com/huanshankeji/kotlin/Use.kt b/core/src/commonMain/kotlin/com/huanshankeji/kotlin/Use.kt index 551baba..93c573b 100644 --- a/core/src/commonMain/kotlin/com/huanshankeji/kotlin/Use.kt +++ b/core/src/commonMain/kotlin/com/huanshankeji/kotlin/Use.kt @@ -1,13 +1,17 @@ package com.huanshankeji.kotlin +import com.huanshankeji.ExperimentalApi import kotlin.contracts.ExperimentalContracts import kotlin.contracts.InvocationKind import kotlin.contracts.contract +// copied and adapted from https://github.com/JetBrains/kotlin/blob/e747a5a9a6070fd2ee0b2fd1fda1de3230c8307f/libraries/stdlib/jvm/src/kotlin/AutoCloseableJVM.kt#L23 + /** * Copied and adapted from [kotlin.use]. */ -@Deprecated("See https://kotlinlang.org/docs/whatsnew20.html#stable-autocloseable-interface") +//@Deprecated("See https://kotlinlang.org/docs/whatsnew20.html#stable-autocloseable-interface") +@ExperimentalApi @OptIn(ExperimentalContracts::class) inline fun T.use(block: (T) -> R, close: T.() -> Unit): R { contract { @@ -27,10 +31,10 @@ inline fun T.use(block: (T) -> R, close: T.() -> Unit): R { /** * Copied and adapted from [kotlin.closeFinally]. */ -@Deprecated("See https://kotlinlang.org/docs/whatsnew20.html#stable-autocloseable-interface") -/*private*/ inline fun T.closeFinally(cause: Throwable?, close: T.() -> Unit) = when { - this == null -> { - } +//@Deprecated("See https://kotlinlang.org/docs/whatsnew20.html#stable-autocloseable-interface") +@PublishedApi +internal inline fun T.closeFinally(cause: Throwable?, close: T.() -> Unit) = when { + this == null -> {} cause == null -> close() else -> try { @@ -38,4 +42,4 @@ inline fun T.use(block: (T) -> R, close: T.() -> Unit): R { } catch (closeException: Throwable) { cause.addSuppressed(closeException) } -} \ No newline at end of file +} diff --git a/core/src/commonMain/kotlin/com/huanshankeji/kotlin/function/parametertypeparameter/NullableUnitReturnTypeParameterFunction.kt b/core/src/commonMain/kotlin/com/huanshankeji/kotlin/function/parametertypeparameter/NullableUnitReturnTypeParameterFunction.kt new file mode 100644 index 0000000..714ef20 --- /dev/null +++ b/core/src/commonMain/kotlin/com/huanshankeji/kotlin/function/parametertypeparameter/NullableUnitReturnTypeParameterFunction.kt @@ -0,0 +1,18 @@ +package com.huanshankeji.kotlin.function.parametertypeparameter + +import com.huanshankeji.ExperimentalApi + +private typealias NullableUnitReturnTypeParameterFunction = ((T) -> Unit)? + +@ExperimentalApi +inline operator fun NullableUnitReturnTypeParameterFunction.plus(noinline other: NullableUnitReturnTypeParameterFunction): NullableUnitReturnTypeParameterFunction = + if (this === null) + other + else if (other === null) + this + else { + { + this@plus(it) + other(it) + } + } diff --git a/core/src/commonMain/kotlin/com/huanshankeji/kotlin/function/receivertypeparameter/NullableUnitReturnTypeReceiverFunction.kt b/core/src/commonMain/kotlin/com/huanshankeji/kotlin/function/receivertypeparameter/NullableUnitReturnTypeReceiverFunction.kt new file mode 100644 index 0000000..6602857 --- /dev/null +++ b/core/src/commonMain/kotlin/com/huanshankeji/kotlin/function/receivertypeparameter/NullableUnitReturnTypeReceiverFunction.kt @@ -0,0 +1,18 @@ +package com.huanshankeji.kotlin.function.receivertypeparameter + +import com.huanshankeji.ExperimentalApi + +private typealias NullableUnitReturnTypeReceiverFunction = (T.() -> Unit)? + +@ExperimentalApi +inline operator fun NullableUnitReturnTypeReceiverFunction.plus(noinline other: NullableUnitReturnTypeReceiverFunction): NullableUnitReturnTypeReceiverFunction = + if (this === null) + other + else if (other === null) + this + else { + { + this@plus() + other() + } + } diff --git a/core/src/jvmMain/kotlin/com/huanshankeji/jdbc/JdbcUrls.kt b/core/src/jvmMain/kotlin/com/huanshankeji/jdbc/JdbcUrls.kt new file mode 100644 index 0000000..7216925 --- /dev/null +++ b/core/src/jvmMain/kotlin/com/huanshankeji/jdbc/JdbcUrls.kt @@ -0,0 +1,4 @@ +package com.huanshankeji.jdbc + +fun jdbcUrl(rdbms: String, host: String, port: Int?, database: String) = + "jdbc:$rdbms://$host${port?.let { ":$it" } ?: ""}/$database" diff --git a/coroutines/api/kotlin-common-coroutines.api b/coroutines/api/kotlin-common-coroutines.api index 3b48826..e0b9a1d 100644 --- a/coroutines/api/kotlin-common-coroutines.api +++ b/coroutines/api/kotlin-common-coroutines.api @@ -6,6 +6,14 @@ public final class com/huanshankeji/kotlinx/coroutine/AwaitKt { public static final fun joinAny ([Lkotlinx/coroutines/Job;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } +public abstract interface class com/huanshankeji/kotlinx/coroutine/CoroutineAutoCloseable { + public abstract fun close (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public final class com/huanshankeji/kotlinx/coroutine/CoroutineAutoCloseableKt { + public static final fun use (Lcom/huanshankeji/kotlinx/coroutine/CoroutineAutoCloseable;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + public abstract interface class com/huanshankeji/kotlinx/coroutine/WithCoroutineScope { public abstract fun getCoroutineScope ()Lkotlinx/coroutines/CoroutineScope; } diff --git a/coroutines/api/kotlin-common-coroutines.klib.api b/coroutines/api/kotlin-common-coroutines.klib.api index e4b9b2d..9f2be8a 100644 --- a/coroutines/api/kotlin-common-coroutines.klib.api +++ b/coroutines/api/kotlin-common-coroutines.klib.api @@ -6,6 +6,10 @@ // - Show declarations: true // Library unique name: +abstract fun interface com.huanshankeji.kotlinx.coroutine/CoroutineAutoCloseable { // com.huanshankeji.kotlinx.coroutine/CoroutineAutoCloseable|null[0] + abstract suspend fun close() // com.huanshankeji.kotlinx.coroutine/CoroutineAutoCloseable.close|close(){}[0] +} + abstract interface com.huanshankeji.kotlinx.coroutine/WithCoroutineScope { // com.huanshankeji.kotlinx.coroutine/WithCoroutineScope|null[0] abstract val coroutineScope // com.huanshankeji.kotlinx.coroutine/WithCoroutineScope.coroutineScope|{}coroutineScope[0] abstract fun (): kotlinx.coroutines/CoroutineScope // com.huanshankeji.kotlinx.coroutine/WithCoroutineScope.coroutineScope.|(){}[0] @@ -16,3 +20,4 @@ final suspend fun <#A: kotlin/Any?> (kotlin.collections/Collection (kotlin.collections/Collection>).com.huanshankeji.kotlinx.coroutine/awaitAnyAndCancelOthers(): #A // com.huanshankeji.kotlinx.coroutine/awaitAnyAndCancelOthers|awaitAnyAndCancelOthers@kotlin.collections.Collection>(){0§}[0] final suspend fun <#A: kotlin/Any?> com.huanshankeji.kotlinx.coroutine/awaitAny(kotlin/Array>...): #A // com.huanshankeji.kotlinx.coroutine/awaitAny|awaitAny(kotlin.Array>...){0§}[0] final suspend fun com.huanshankeji.kotlinx.coroutine/joinAny(kotlin/Array...) // com.huanshankeji.kotlinx.coroutine/joinAny|joinAny(kotlin.Array...){}[0] +final suspend inline fun <#A: com.huanshankeji.kotlinx.coroutine/CoroutineAutoCloseable?, #B: kotlin/Any?> (#A).com.huanshankeji.kotlinx.coroutine/use(kotlin/Function1<#A, #B>): #B // com.huanshankeji.kotlinx.coroutine/use|use@0:0(kotlin.Function1<0:0,0:1>){0§;1§}[0] diff --git a/coroutines/src/commonMain/kotlin/com/huanshankeji/kotlinx/coroutine/Await.kt b/coroutines/src/commonMain/kotlin/com/huanshankeji/kotlinx/coroutine/Await.kt index 8c4e560..2ce908f 100644 --- a/coroutines/src/commonMain/kotlin/com/huanshankeji/kotlinx/coroutine/Await.kt +++ b/coroutines/src/commonMain/kotlin/com/huanshankeji/kotlinx/coroutine/Await.kt @@ -1,19 +1,23 @@ package com.huanshankeji.kotlinx.coroutine +import com.huanshankeji.ExperimentalApi import kotlinx.coroutines.Deferred import kotlinx.coroutines.Job import kotlinx.coroutines.selects.select +@ExperimentalApi suspend fun awaitAny(vararg deferreds: Deferred): T { require(deferreds.isNotEmpty()) return select { deferreds.forEach { it.onAwait { it } } } } +@ExperimentalApi suspend fun Collection>.awaitAny(): T { require(isNotEmpty()) return select { forEach { it.onAwait { it } } } } +@ExperimentalApi suspend fun Collection>.awaitAnyAndCancelOthers(): T { require(isNotEmpty()) val firstAwaited = select { forEachIndexed { index, deferred -> deferred.onAwait { IndexedValue(index, it) } } } @@ -22,11 +26,13 @@ suspend fun Collection>.awaitAnyAndCancelOthers(): T { return firstAwaited.value } +@ExperimentalApi suspend fun joinAny(vararg jobs: Job) { require(jobs.isNotEmpty()) select { jobs.forEach { it.onJoin { } } } } +@ExperimentalApi suspend fun Collection.joinAny() { require(isNotEmpty()) select { forEach { it.onJoin { } } } diff --git a/coroutines/src/commonMain/kotlin/com/huanshankeji/kotlinx/coroutine/CoroutineAutoCloseable.kt b/coroutines/src/commonMain/kotlin/com/huanshankeji/kotlinx/coroutine/CoroutineAutoCloseable.kt new file mode 100644 index 0000000..febe21a --- /dev/null +++ b/coroutines/src/commonMain/kotlin/com/huanshankeji/kotlinx/coroutine/CoroutineAutoCloseable.kt @@ -0,0 +1,17 @@ +package com.huanshankeji.kotlinx.coroutine + +import com.huanshankeji.ExperimentalApi +import com.huanshankeji.kotlin.use + +/** + * @see AutoCloseable + * Also see https://github.com/Kotlin/kotlinx.coroutines/issues/1191. + * Made a functional interface so that there is no need to add a function like the [AutoCloseable] one. + */ +@ExperimentalApi +fun interface CoroutineAutoCloseable { + suspend fun close() +} + +suspend inline fun T.use(block: (T) -> R): R = + use(block) { this?.close() } diff --git a/exposed/api/kotlin-common-exposed.api b/exposed/api/kotlin-common-exposed.api index c5ffb56..44650dc 100644 --- a/exposed/api/kotlin-common-exposed.api +++ b/exposed/api/kotlin-common-exposed.api @@ -15,16 +15,15 @@ public final class com/huanshankeji/exposed/SliceKt { } public final class com/huanshankeji/exposed/StatementsKt { + public static final field SELECT_DSL_DEPRECATION_MESSAGE Ljava/lang/String; public static final fun defaultColumnsForInsertSelect (Lorg/jetbrains/exposed/sql/Table;)Ljava/util/List; public static final fun deleteAllStatement (Lorg/jetbrains/exposed/sql/Table;)Lorg/jetbrains/exposed/sql/statements/DeleteStatement; public static final fun deleteIgnoreWhereStatement (Lorg/jetbrains/exposed/sql/Table;Ljava/lang/Integer;Ljava/lang/Long;Lkotlin/jvm/functions/Function2;)Lorg/jetbrains/exposed/sql/statements/DeleteStatement; public static synthetic fun deleteIgnoreWhereStatement$default (Lorg/jetbrains/exposed/sql/Table;Ljava/lang/Integer;Ljava/lang/Long;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lorg/jetbrains/exposed/sql/statements/DeleteStatement; public static final fun deleteWhereStatement (Lorg/jetbrains/exposed/sql/Table;Ljava/lang/Integer;Ljava/lang/Long;Lkotlin/jvm/functions/Function2;)Lorg/jetbrains/exposed/sql/statements/DeleteStatement; public static final fun deleteWhereStatement (Lorg/jetbrains/exposed/sql/Table;Lorg/jetbrains/exposed/sql/Op;ZLjava/lang/Integer;Ljava/lang/Long;)Lorg/jetbrains/exposed/sql/statements/DeleteStatement; - public static final fun deleteWhereStatement (Lorg/jetbrains/exposed/sql/Table;ZLjava/lang/Integer;Ljava/lang/Long;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/exposed/sql/statements/DeleteStatement; public static synthetic fun deleteWhereStatement$default (Lorg/jetbrains/exposed/sql/Table;Ljava/lang/Integer;Ljava/lang/Long;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lorg/jetbrains/exposed/sql/statements/DeleteStatement; public static synthetic fun deleteWhereStatement$default (Lorg/jetbrains/exposed/sql/Table;Lorg/jetbrains/exposed/sql/Op;ZLjava/lang/Integer;Ljava/lang/Long;ILjava/lang/Object;)Lorg/jetbrains/exposed/sql/statements/DeleteStatement; - public static synthetic fun deleteWhereStatement$default (Lorg/jetbrains/exposed/sql/Table;ZLjava/lang/Integer;Ljava/lang/Long;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/jetbrains/exposed/sql/statements/DeleteStatement; public static final fun insertIgnoreStatement (Lorg/jetbrains/exposed/sql/Table;Lkotlin/jvm/functions/Function2;)Lcom/huanshankeji/exposed/HelperInsertStatement; public static final fun insertSelectStatement (Lorg/jetbrains/exposed/sql/Table;Lorg/jetbrains/exposed/sql/AbstractQuery;Ljava/util/List;Z)Lorg/jetbrains/exposed/sql/statements/InsertSelectStatement; public static synthetic fun insertSelectStatement$default (Lorg/jetbrains/exposed/sql/Table;Lorg/jetbrains/exposed/sql/AbstractQuery;Ljava/util/List;ZILjava/lang/Object;)Lorg/jetbrains/exposed/sql/statements/InsertSelectStatement; diff --git a/exposed/src/main/kotlin/com/huanshankeji/exposed/Slice.kt b/exposed/src/main/kotlin/com/huanshankeji/exposed/Slice.kt index 2f92bf4..3522fc4 100644 --- a/exposed/src/main/kotlin/com/huanshankeji/exposed/Slice.kt +++ b/exposed/src/main/kotlin/com/huanshankeji/exposed/Slice.kt @@ -9,6 +9,7 @@ import org.jetbrains.exposed.sql.ColumnSet */ @Deprecated("This causes \"java.lang.IllegalArgumentException: Can't prepare SELECT statement without columns or expressions to retrieve\" in the latest version of Exposed.") fun ColumnSet.emptySlice() = + @Suppress("DEPRECATION_ERROR") slice(emptyList()) @Untested diff --git a/exposed/src/main/kotlin/com/huanshankeji/exposed/Statements.kt b/exposed/src/main/kotlin/com/huanshankeji/exposed/Statements.kt index bddcfe7..ee68b8d 100644 --- a/exposed/src/main/kotlin/com/huanshankeji/exposed/Statements.kt +++ b/exposed/src/main/kotlin/com/huanshankeji/exposed/Statements.kt @@ -19,6 +19,7 @@ const val SELECT_DSL_DEPRECATION_MESSAGE = ReplaceWith("selectAllStatement().where(where)") ) fun FieldSet.selectStatement(where: WhereOp): Query = + @Suppress("DEPRECATION_ERROR") select(where) /** @@ -29,6 +30,7 @@ fun FieldSet.selectStatement(where: WhereOp): Query = ReplaceWith("selectAllStatement().where(where)") ) fun FieldSet.selectStatement(where: BuildWhere): Query = + @Suppress("DEPRECATION_ERROR") select(where) @Deprecated( @@ -67,15 +69,6 @@ fun Table.deleteWhereStatement( ): DeleteStatement = DeleteStatement(this, op, isIgnore, limit, offset) -/** - * Adapted from [org.jetbrains.exposed.sql.deleteWhere]. - */ -@Deprecated("Use the new table-aware APIs. See https://github.com/JetBrains/Exposed/commit/b9b53f8bbdfbf8cbab56d5602f92543e2ccd473c.") -fun Table.deleteWhereStatement( - isIgnore: Boolean = false, limit: Int? = null, offset: Long? = null, op: BuildWhere -): DeleteStatement = - DeleteStatement(this, SqlExpressionBuilder.op(), isIgnore, limit, offset) - /** * Adapted from [org.jetbrains.exposed.sql.deleteWhere]. */ diff --git a/exposed/src/main/kotlin/com/huanshankeji/exposed/Where.kt b/exposed/src/main/kotlin/com/huanshankeji/exposed/Where.kt index 5c50275..19eb21f 100644 --- a/exposed/src/main/kotlin/com/huanshankeji/exposed/Where.kt +++ b/exposed/src/main/kotlin/com/huanshankeji/exposed/Where.kt @@ -5,7 +5,7 @@ import org.jetbrains.exposed.sql.Op import org.jetbrains.exposed.sql.SqlExpressionBuilder typealias BuildWhere = SqlExpressionBuilder.() -> Op -@Deprecated("Renamed to `WhereBuilder`", ReplaceWith("BuildWhere")) +@Deprecated("Renamed to `WhereBuilder`", ReplaceWith("BuildWhere"/*, "com.huanshankeji.exposed.BuildWhere"*/)) typealias Where = BuildWhere typealias WhereOp = Op typealias TableAwareBuildWhere = T.() -> Op diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 79eb9d0..c1d5e01 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/kotlin-js-store/yarn.lock b/kotlin-js-store/yarn.lock index 382ecf7..a9ef7d1 100644 --- a/kotlin-js-store/yarn.lock +++ b/kotlin-js-store/yarn.lock @@ -85,33 +85,12 @@ resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== -"@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.2.tgz#48f2ac58ab9c631cb68845c3d956b28f79fad575" - integrity sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== - "@types/estree@^1.0.5": version "1.0.5" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== -"@types/json-schema@*", "@types/json-schema@^7.0.8": +"@types/json-schema@^7.0.8": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== @@ -275,10 +254,10 @@ accepts@~1.3.4: mime-types "~2.1.34" negotiator "0.6.3" -acorn-import-assertions@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" - integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== +acorn-import-attributes@^1.9.5: + version "1.9.5" + resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef" + integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ== acorn@^8.7.1: version "8.8.1" @@ -305,10 +284,10 @@ ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +ansi-colors@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== ansi-regex@^5.0.1: version "5.0.1" @@ -398,7 +377,7 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browser-stdout@1.3.1: +browser-stdout@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== @@ -449,7 +428,7 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chokidar@3.5.3, chokidar@^3.5.1: +chokidar@^3.5.1: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -464,6 +443,21 @@ chokidar@3.5.3, chokidar@^3.5.1: optionalDependencies: fsevents "~2.3.2" +chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" @@ -573,13 +567,20 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4.3.4, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2, debug@~4.3.4: +debug@^4.3.4, debug@~4.3.1, debug@~4.3.2, debug@~4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" +debug@^4.3.5: + version "4.3.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== + dependencies: + ms "^2.1.3" + decamelize@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" @@ -600,10 +601,10 @@ di@^0.0.1: resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== +diff@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" + integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== dom-serialize@^2.2.1: version "2.2.1" @@ -656,10 +657,10 @@ engine.io@~6.5.2: engine.io-parser "~5.2.1" ws "~8.11.0" -enhanced-resolve@^5.16.0: - version "5.16.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz#e8bc63d51b826d6f1cbc0a150ecb5a8b0c62e567" - integrity sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw== +enhanced-resolve@^5.17.1: + version "5.17.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" + integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -694,7 +695,7 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@4.0.0: +escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== @@ -774,14 +775,6 @@ finalhandler@1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-up@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - find-up@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -790,6 +783,14 @@ find-up@^4.0.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + flat@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" @@ -865,17 +866,6 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - glob@^7.1.3, glob@^7.1.7: version "7.2.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.2.tgz#29deb38e1ef90f132d5958abe9c3ee8e87f3c318" @@ -888,6 +878,17 @@ glob@^7.1.3, glob@^7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" @@ -922,7 +923,7 @@ hasown@^2.0.0: dependencies: function-bind "^1.1.2" -he@1.2.0: +he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== @@ -1064,7 +1065,7 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -js-yaml@4.1.0: +js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== @@ -1118,10 +1119,10 @@ karma-webpack@5.0.1: minimatch "^9.0.3" webpack-merge "^4.1.5" -karma@6.4.3: - version "6.4.3" - resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.3.tgz#763e500f99597218bbb536de1a14acc4ceea7ce8" - integrity sha512-LuucC/RE92tJ8mlCwqEoRWXP38UMAqpnq98vktmS9SznSoUPPUJQbc91dHcxcunROvfQjdORVA/YFviH+Xci9Q== +karma@6.4.4: + version "6.4.4" + resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.4.tgz#dfa5a426cf5a8b53b43cd54ef0d0d09742351492" + integrity sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w== dependencies: "@colors/colors" "1.5.0" body-parser "^1.19.0" @@ -1153,6 +1154,13 @@ kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +kotlin-web-helpers@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kotlin-web-helpers/-/kotlin-web-helpers-2.0.0.tgz#b112096b273c1e733e0b86560998235c09a19286" + integrity sha512-xkVGl60Ygn/zuLkDPx+oHj7jeLR7hCvoNF99nhwXMn8a3ApB4lLiC9pk4ol4NHPjyoCbvQctBqvzUcp8pkqyWw== + dependencies: + format-util "^1.0.5" + loader-runner@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" @@ -1177,7 +1185,7 @@ lodash@^4.17.15, lodash@^4.17.21, lodash@^4.17.4: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@4.1.0: +log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== @@ -1223,13 +1231,6 @@ mime@^2.5.2: resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -1237,7 +1238,7 @@ minimatch@^3.0.4, minimatch@^3.1.1: dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1: +minimatch@^5.0.1, minimatch@^5.1.6: version "5.1.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== @@ -1263,31 +1264,31 @@ mkdirp@^0.5.5: dependencies: minimist "^1.2.6" -mocha@10.3.0: - version "10.3.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.3.0.tgz#0e185c49e6dccf582035c05fa91084a4ff6e3fe9" - integrity sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg== - dependencies: - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.3" - debug "4.3.4" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "8.1.0" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "5.0.1" - ms "2.1.3" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - workerpool "6.2.1" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" +mocha@10.7.3: + version "10.7.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.7.3.tgz#ae32003cabbd52b59aece17846056a68eb4b0752" + integrity sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A== + dependencies: + ansi-colors "^4.1.3" + browser-stdout "^1.3.1" + chokidar "^3.5.3" + debug "^4.3.5" + diff "^5.2.0" + escape-string-regexp "^4.0.0" + find-up "^5.0.0" + glob "^8.1.0" + he "^1.2.0" + js-yaml "^4.1.0" + log-symbols "^4.1.0" + minimatch "^5.1.6" + ms "^2.1.3" + serialize-javascript "^6.0.2" + strip-json-comments "^3.1.1" + supports-color "^8.1.1" + workerpool "^6.5.1" + yargs "^16.2.0" + yargs-parser "^20.2.9" + yargs-unparser "^2.0.0" ms@2.0.0: version "2.0.0" @@ -1299,7 +1300,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3: +ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -1559,13 +1560,6 @@ schema-utils@^3.2.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - serialize-javascript@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" @@ -1573,6 +1567,13 @@ serialize-javascript@^6.0.1: dependencies: randombytes "^2.1.0" +serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" @@ -1696,18 +1697,11 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-json-comments@3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -supports-color@8.1.1, supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -1715,6 +1709,13 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.0.0, supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" @@ -1773,10 +1774,10 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -typescript@5.4.3: - version "5.4.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.3.tgz#5c6fedd4c87bee01cd7a528a30145521f8e0feff" - integrity sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg== +typescript@5.5.4: + version "5.5.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== ua-parser-js@^0.7.30: version "0.7.31" @@ -1870,21 +1871,20 @@ webpack-sources@^3.2.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@5.91.0: - version "5.91.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.91.0.tgz#ffa92c1c618d18c878f06892bbdc3373c71a01d9" - integrity sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw== +webpack@5.94.0: + version "5.94.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.94.0.tgz#77a6089c716e7ab90c1c67574a28da518a20970f" + integrity sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg== dependencies: - "@types/eslint-scope" "^3.7.3" "@types/estree" "^1.0.5" "@webassemblyjs/ast" "^1.12.1" "@webassemblyjs/wasm-edit" "^1.12.1" "@webassemblyjs/wasm-parser" "^1.12.1" acorn "^8.7.1" - acorn-import-assertions "^1.9.0" + acorn-import-attributes "^1.9.5" browserslist "^4.21.10" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.16.0" + enhanced-resolve "^5.17.1" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" @@ -1919,10 +1919,10 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== -workerpool@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" - integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== +workerpool@^6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" + integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== wrap-ansi@^7.0.0: version "7.0.0" @@ -1948,17 +1948,12 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@^20.2.2: +yargs-parser@^20.2.2, yargs-parser@^20.2.9: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-unparser@2.0.0: +yargs-unparser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== @@ -1968,7 +1963,7 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@16.2.0, yargs@^16.1.1: +yargs@^16.1.1, yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== diff --git a/serialization/benchmark/api/kotlin-common-serialization-benchmark.api b/serialization/benchmark/api/kotlin-common-serialization-benchmark.api deleted file mode 100644 index 1867db6..0000000 --- a/serialization/benchmark/api/kotlin-common-serialization-benchmark.api +++ /dev/null @@ -1,231 +0,0 @@ -public abstract class com/huanshankeji/kotlinx/serialization/benchmark/BaseBenchmark { - public fun ()V -} - -public final class com/huanshankeji/kotlinx/serialization/benchmark/DataAndSerializersKt { - public static final fun getMaxDefaultLongWrapperDataSerializationConfig ()Lcom/huanshankeji/kotlinx/serialization/benchmark/DataSerializationConfig; - public static final fun getMaxFixedLongWrapperDataSerializationConfig ()Lcom/huanshankeji/kotlinx/serialization/benchmark/DataSerializationConfig; - public static final fun getMaxLongWrapperDataSerializationConfig ()Lcom/huanshankeji/kotlinx/serialization/benchmark/DataSerializationConfig; - public static final fun getTestDataOfNothing ()Lcom/huanshankeji/kotlinx/serialization/benchmark/TestData; - public static final fun getTestDataOfNothingDataSerializationConfig ()Lcom/huanshankeji/kotlinx/serialization/benchmark/DataSerializationConfig; - public static final fun getTestDataOfNothingSerializer ()Lkotlinx/serialization/SerializationStrategy; - public static final fun getZeroDefaultLongWrapperDataSerializationConfig ()Lcom/huanshankeji/kotlinx/serialization/benchmark/DataSerializationConfig; - public static final fun getZeroFixedLongWrapperDataSerializationConfig ()Lcom/huanshankeji/kotlinx/serialization/benchmark/DataSerializationConfig; - public static final fun getZeroLongWrapperDataSerializationConfig ()Lcom/huanshankeji/kotlinx/serialization/benchmark/DataSerializationConfig; -} - -public final class com/huanshankeji/kotlinx/serialization/benchmark/DataSerializationConfig { - public fun (Lkotlin/reflect/KType;Lkotlinx/serialization/SerializationStrategy;Ljava/lang/Object;)V - public final fun getData ()Ljava/lang/Object; - public final fun getKType ()Lkotlin/reflect/KType; - public final fun getSerializer ()Lkotlinx/serialization/SerializationStrategy; -} - -public final class com/huanshankeji/kotlinx/serialization/benchmark/DefaultLongWrapper { - public static final field Companion Lcom/huanshankeji/kotlinx/serialization/benchmark/DefaultLongWrapper$Companion; - public fun (J)V - public final fun getValue ()J -} - -public synthetic class com/huanshankeji/kotlinx/serialization/benchmark/DefaultLongWrapper$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/huanshankeji/kotlinx/serialization/benchmark/DefaultLongWrapper$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/huanshankeji/kotlinx/serialization/benchmark/DefaultLongWrapper; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/huanshankeji/kotlinx/serialization/benchmark/DefaultLongWrapper;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/huanshankeji/kotlinx/serialization/benchmark/DefaultLongWrapper$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public class com/huanshankeji/kotlinx/serialization/benchmark/DifferentDataBenchmark : com/huanshankeji/kotlinx/serialization/benchmark/BaseBenchmark { - public field paramEnum Lcom/huanshankeji/kotlinx/serialization/benchmark/DifferentDataParamEnum; - public fun ()V - public fun getParamEnum ()Lcom/huanshankeji/kotlinx/serialization/benchmark/DifferentDataParamEnum; - public fun serializeToJsonWithSerializerFromKType ()Ljava/lang/String; - public fun serializeToJsonWithStaticSerializer ()Ljava/lang/String; - public fun serializeToProtobufWithSerializerFromKType ()[B - public fun serializeToProtobufWithStaticSerializer ()[B - public fun setParamEnum (Lcom/huanshankeji/kotlinx/serialization/benchmark/DifferentDataParamEnum;)V -} - -public final class com/huanshankeji/kotlinx/serialization/benchmark/DifferentDataParamEnum : java/lang/Enum, com/huanshankeji/kotlinx/serialization/benchmark/IParamEnum { - public static final field MaxLongWrapper Lcom/huanshankeji/kotlinx/serialization/benchmark/DifferentDataParamEnum; - public static final field StringWrapper Lcom/huanshankeji/kotlinx/serialization/benchmark/DifferentDataParamEnum; - public static final field TestDataWithNothing Lcom/huanshankeji/kotlinx/serialization/benchmark/DifferentDataParamEnum; - public static final field WrapperOfString Lcom/huanshankeji/kotlinx/serialization/benchmark/DifferentDataParamEnum; - public static final field WrapperOfZeroInt Lcom/huanshankeji/kotlinx/serialization/benchmark/DifferentDataParamEnum; - public static final field WrapperOfZeroLong Lcom/huanshankeji/kotlinx/serialization/benchmark/DifferentDataParamEnum; - public static final field ZeroIntWrapper Lcom/huanshankeji/kotlinx/serialization/benchmark/DifferentDataParamEnum; - public static final field ZeroLongWrapper Lcom/huanshankeji/kotlinx/serialization/benchmark/DifferentDataParamEnum; - public fun getDataSerializationConfig ()Lcom/huanshankeji/kotlinx/serialization/benchmark/DataSerializationConfig; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lcom/huanshankeji/kotlinx/serialization/benchmark/DifferentDataParamEnum; - public static fun values ()[Lcom/huanshankeji/kotlinx/serialization/benchmark/DifferentDataParamEnum; -} - -public final class com/huanshankeji/kotlinx/serialization/benchmark/FixedLongWrapper { - public static final field Companion Lcom/huanshankeji/kotlinx/serialization/benchmark/FixedLongWrapper$Companion; - public fun (J)V - public final fun getValue ()J -} - -public synthetic class com/huanshankeji/kotlinx/serialization/benchmark/FixedLongWrapper$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/huanshankeji/kotlinx/serialization/benchmark/FixedLongWrapper$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/huanshankeji/kotlinx/serialization/benchmark/FixedLongWrapper; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/huanshankeji/kotlinx/serialization/benchmark/FixedLongWrapper;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/huanshankeji/kotlinx/serialization/benchmark/FixedLongWrapper$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public abstract interface class com/huanshankeji/kotlinx/serialization/benchmark/IParamEnum { - public abstract fun getDataSerializationConfig ()Lcom/huanshankeji/kotlinx/serialization/benchmark/DataSerializationConfig; -} - -public final class com/huanshankeji/kotlinx/serialization/benchmark/IntWrapper { - public static final field Companion Lcom/huanshankeji/kotlinx/serialization/benchmark/IntWrapper$Companion; - public fun (I)V - public final fun getValue ()I -} - -public synthetic class com/huanshankeji/kotlinx/serialization/benchmark/IntWrapper$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/huanshankeji/kotlinx/serialization/benchmark/IntWrapper$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/huanshankeji/kotlinx/serialization/benchmark/IntWrapper; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/huanshankeji/kotlinx/serialization/benchmark/IntWrapper;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/huanshankeji/kotlinx/serialization/benchmark/IntWrapper$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/huanshankeji/kotlinx/serialization/benchmark/LongWrapper { - public static final field Companion Lcom/huanshankeji/kotlinx/serialization/benchmark/LongWrapper$Companion; - public fun (J)V - public final fun getValue ()J -} - -public synthetic class com/huanshankeji/kotlinx/serialization/benchmark/LongWrapper$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/huanshankeji/kotlinx/serialization/benchmark/LongWrapper$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/huanshankeji/kotlinx/serialization/benchmark/LongWrapper; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/huanshankeji/kotlinx/serialization/benchmark/LongWrapper;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/huanshankeji/kotlinx/serialization/benchmark/LongWrapper$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/huanshankeji/kotlinx/serialization/benchmark/StringWrapper { - public static final field Companion Lcom/huanshankeji/kotlinx/serialization/benchmark/StringWrapper$Companion; - public fun (Ljava/lang/String;)V - public final fun getValue ()Ljava/lang/String; -} - -public synthetic class com/huanshankeji/kotlinx/serialization/benchmark/StringWrapper$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/huanshankeji/kotlinx/serialization/benchmark/StringWrapper$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/huanshankeji/kotlinx/serialization/benchmark/StringWrapper; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/huanshankeji/kotlinx/serialization/benchmark/StringWrapper;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/huanshankeji/kotlinx/serialization/benchmark/StringWrapper$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/huanshankeji/kotlinx/serialization/benchmark/TestData { - public static final field Companion Lcom/huanshankeji/kotlinx/serialization/benchmark/TestData$Companion; - public fun (Ljava/lang/String;Ljava/lang/Object;)V - public final fun getProperty1 ()Ljava/lang/String; - public final fun getProperty2 ()Ljava/lang/Object; -} - -public synthetic class com/huanshankeji/kotlinx/serialization/benchmark/TestData$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public fun (Lkotlinx/serialization/KSerializer;)V - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/huanshankeji/kotlinx/serialization/benchmark/TestData; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/huanshankeji/kotlinx/serialization/benchmark/TestData;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public final fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/huanshankeji/kotlinx/serialization/benchmark/TestData$Companion { - public final fun serializer (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer; -} - -public class com/huanshankeji/kotlinx/serialization/benchmark/TestDataBenchmark : com/huanshankeji/kotlinx/serialization/benchmark/BaseBenchmark { - public fun ()V - public fun serializeToJson ()Ljava/lang/String; - public fun serializeToJsonWithStaticSerializer ()Ljava/lang/String; - public fun serializeToProtobuf ()[B - public fun serializeToProtobufWithNothingWorkaround ()[B - public fun serializeToProtobufWithStaticSerializer ()[B -} - -public final class com/huanshankeji/kotlinx/serialization/benchmark/Wrapper { - public static final field Companion Lcom/huanshankeji/kotlinx/serialization/benchmark/Wrapper$Companion; - public fun (Ljava/lang/Object;)V - public final fun getValue ()Ljava/lang/Object; -} - -public synthetic class com/huanshankeji/kotlinx/serialization/benchmark/Wrapper$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public fun (Lkotlinx/serialization/KSerializer;)V - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/huanshankeji/kotlinx/serialization/benchmark/Wrapper; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/huanshankeji/kotlinx/serialization/benchmark/Wrapper;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public final fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/huanshankeji/kotlinx/serialization/benchmark/Wrapper$Companion { - public final fun serializer (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer; -} - -public class com/huanshankeji/kotlinx/serialization/benchmark/protobuf/ProtoBufBenchmark : com/huanshankeji/kotlinx/serialization/benchmark/BaseBenchmark { - public field paramEnum Lcom/huanshankeji/kotlinx/serialization/benchmark/protobuf/ProtoBufBenchmark$ParamEnum; - public fun ()V - public fun getParamEnum ()Lcom/huanshankeji/kotlinx/serialization/benchmark/protobuf/ProtoBufBenchmark$ParamEnum; - public fun serialize ()[B - public fun setParamEnum (Lcom/huanshankeji/kotlinx/serialization/benchmark/protobuf/ProtoBufBenchmark$ParamEnum;)V -} - -public final class com/huanshankeji/kotlinx/serialization/benchmark/protobuf/ProtoBufBenchmark$ParamEnum : java/lang/Enum, com/huanshankeji/kotlinx/serialization/benchmark/IParamEnum { - public static final field MaxDefaultLongWrapper Lcom/huanshankeji/kotlinx/serialization/benchmark/protobuf/ProtoBufBenchmark$ParamEnum; - public static final field MaxFixedLongWrapper Lcom/huanshankeji/kotlinx/serialization/benchmark/protobuf/ProtoBufBenchmark$ParamEnum; - public static final field MaxLongWrapper Lcom/huanshankeji/kotlinx/serialization/benchmark/protobuf/ProtoBufBenchmark$ParamEnum; - public static final field ZeroDefaultLongWrapper Lcom/huanshankeji/kotlinx/serialization/benchmark/protobuf/ProtoBufBenchmark$ParamEnum; - public static final field ZeroFixedLongWrapper Lcom/huanshankeji/kotlinx/serialization/benchmark/protobuf/ProtoBufBenchmark$ParamEnum; - public static final field ZeroLongWrapper Lcom/huanshankeji/kotlinx/serialization/benchmark/protobuf/ProtoBufBenchmark$ParamEnum; - public fun getDataSerializationConfig ()Lcom/huanshankeji/kotlinx/serialization/benchmark/DataSerializationConfig; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lcom/huanshankeji/kotlinx/serialization/benchmark/protobuf/ProtoBufBenchmark$ParamEnum; - public static fun values ()[Lcom/huanshankeji/kotlinx/serialization/benchmark/protobuf/ProtoBufBenchmark$ParamEnum; -} - diff --git a/serialization/benchmark/api/kotlin-common-serialization-benchmark.klib.api b/serialization/benchmark/api/kotlin-common-serialization-benchmark.klib.api deleted file mode 100644 index d63a6df..0000000 --- a/serialization/benchmark/api/kotlin-common-serialization-benchmark.klib.api +++ /dev/null @@ -1,275 +0,0 @@ -// Klib ABI Dump -// Targets: [js] -// Rendering settings: -// - Signature version: 2 -// - Show manifest properties: true -// - Show declarations: true - -// Library unique name: -final enum class com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataParamEnum : com.huanshankeji.kotlinx.serialization.benchmark/IParamEnum, kotlin/Enum { // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataParamEnum|null[0] - enum entry MaxLongWrapper // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataParamEnum.MaxLongWrapper|null[0] - enum entry StringWrapper // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataParamEnum.StringWrapper|null[0] - enum entry TestDataWithNothing // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataParamEnum.TestDataWithNothing|null[0] - enum entry WrapperOfString // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataParamEnum.WrapperOfString|null[0] - enum entry WrapperOfZeroInt // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataParamEnum.WrapperOfZeroInt|null[0] - enum entry WrapperOfZeroLong // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataParamEnum.WrapperOfZeroLong|null[0] - enum entry ZeroIntWrapper // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataParamEnum.ZeroIntWrapper|null[0] - enum entry ZeroLongWrapper // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataParamEnum.ZeroLongWrapper|null[0] - - final val dataSerializationConfig // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataParamEnum.dataSerializationConfig|{}dataSerializationConfig[0] - final fun (): com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig<*> // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataParamEnum.dataSerializationConfig.|(){}[0] - final val entries // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataParamEnum.entries|#static{}entries[0] - final fun (): kotlin.enums/EnumEntries // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataParamEnum.entries.|#static(){}[0] - - final fun valueOf(kotlin/String): com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataParamEnum // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataParamEnum.valueOf|valueOf#static(kotlin.String){}[0] - final fun values(): kotlin/Array // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataParamEnum.values|values#static(){}[0] -} - -abstract interface com.huanshankeji.kotlinx.serialization.benchmark/IParamEnum { // com.huanshankeji.kotlinx.serialization.benchmark/IParamEnum|null[0] - abstract val dataSerializationConfig // com.huanshankeji.kotlinx.serialization.benchmark/IParamEnum.dataSerializationConfig|{}dataSerializationConfig[0] - abstract fun (): com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig<*> // com.huanshankeji.kotlinx.serialization.benchmark/IParamEnum.dataSerializationConfig.|(){}[0] -} - -abstract class com.huanshankeji.kotlinx.serialization.benchmark/BaseBenchmark { // com.huanshankeji.kotlinx.serialization.benchmark/BaseBenchmark|null[0] - constructor () // com.huanshankeji.kotlinx.serialization.benchmark/BaseBenchmark.|(){}[0] -} - -final class <#A: kotlin/Any> com.huanshankeji.kotlinx.serialization.benchmark/TestData { // com.huanshankeji.kotlinx.serialization.benchmark/TestData|null[0] - constructor (kotlin/String, #A?) // com.huanshankeji.kotlinx.serialization.benchmark/TestData.|(kotlin.String;1:0?){}[0] - - final val property1 // com.huanshankeji.kotlinx.serialization.benchmark/TestData.property1|{}property1[0] - final fun (): kotlin/String // com.huanshankeji.kotlinx.serialization.benchmark/TestData.property1.|(){}[0] - final val property2 // com.huanshankeji.kotlinx.serialization.benchmark/TestData.property2|{}property2[0] - final fun (): #A? // com.huanshankeji.kotlinx.serialization.benchmark/TestData.property2.|(){}[0] - - final class <#A1: kotlin/Any?> $serializer : kotlinx.serialization.internal/GeneratedSerializer> { // com.huanshankeji.kotlinx.serialization.benchmark/TestData.$serializer|null[0] - constructor (kotlinx.serialization/KSerializer<#A1>) // com.huanshankeji.kotlinx.serialization.benchmark/TestData.$serializer.|(kotlinx.serialization.KSerializer<1:0>){}[0] - - final val descriptor // com.huanshankeji.kotlinx.serialization.benchmark/TestData.$serializer.descriptor|{}descriptor[0] - final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.huanshankeji.kotlinx.serialization.benchmark/TestData.$serializer.descriptor.|(){}[0] - final val typeSerial0 // com.huanshankeji.kotlinx.serialization.benchmark/TestData.$serializer.typeSerial0|{}typeSerial0[0] - - final fun childSerializers(): kotlin/Array> // com.huanshankeji.kotlinx.serialization.benchmark/TestData.$serializer.childSerializers|childSerializers(){}[0] - final fun deserialize(kotlinx.serialization.encoding/Decoder): com.huanshankeji.kotlinx.serialization.benchmark/TestData<#A1> // com.huanshankeji.kotlinx.serialization.benchmark/TestData.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] - final fun serialize(kotlinx.serialization.encoding/Encoder, com.huanshankeji.kotlinx.serialization.benchmark/TestData<#A1>) // com.huanshankeji.kotlinx.serialization.benchmark/TestData.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.huanshankeji.kotlinx.serialization.benchmark.TestData<1:0>){}[0] - final fun typeParametersSerializers(): kotlin/Array> // com.huanshankeji.kotlinx.serialization.benchmark/TestData.$serializer.typeParametersSerializers|typeParametersSerializers(){}[0] - } - - final object Companion : kotlinx.serialization.internal/SerializerFactory { // com.huanshankeji.kotlinx.serialization.benchmark/TestData.Companion|null[0] - final val $cachedDescriptor // com.huanshankeji.kotlinx.serialization.benchmark/TestData.Companion.$cachedDescriptor|{}$cachedDescriptor[0] - final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.huanshankeji.kotlinx.serialization.benchmark/TestData.Companion.$cachedDescriptor.|(){}[0] - - final fun <#A2: kotlin/Any?> serializer(kotlinx.serialization/KSerializer<#A2>): kotlinx.serialization/KSerializer> // com.huanshankeji.kotlinx.serialization.benchmark/TestData.Companion.serializer|serializer(kotlinx.serialization.KSerializer<0:0>){0§}[0] - final fun serializer(kotlin/Array>...): kotlinx.serialization/KSerializer<*> // com.huanshankeji.kotlinx.serialization.benchmark/TestData.Companion.serializer|serializer(kotlin.Array>...){}[0] - } -} - -final class <#A: kotlin/Any> com.huanshankeji.kotlinx.serialization.benchmark/Wrapper { // com.huanshankeji.kotlinx.serialization.benchmark/Wrapper|null[0] - constructor (#A) // com.huanshankeji.kotlinx.serialization.benchmark/Wrapper.|(1:0){}[0] - - final val value // com.huanshankeji.kotlinx.serialization.benchmark/Wrapper.value|{}value[0] - final fun (): #A // com.huanshankeji.kotlinx.serialization.benchmark/Wrapper.value.|(){}[0] - - final class <#A1: kotlin/Any?> $serializer : kotlinx.serialization.internal/GeneratedSerializer> { // com.huanshankeji.kotlinx.serialization.benchmark/Wrapper.$serializer|null[0] - constructor (kotlinx.serialization/KSerializer<#A1>) // com.huanshankeji.kotlinx.serialization.benchmark/Wrapper.$serializer.|(kotlinx.serialization.KSerializer<1:0>){}[0] - - final val descriptor // com.huanshankeji.kotlinx.serialization.benchmark/Wrapper.$serializer.descriptor|{}descriptor[0] - final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.huanshankeji.kotlinx.serialization.benchmark/Wrapper.$serializer.descriptor.|(){}[0] - final val typeSerial0 // com.huanshankeji.kotlinx.serialization.benchmark/Wrapper.$serializer.typeSerial0|{}typeSerial0[0] - - final fun childSerializers(): kotlin/Array> // com.huanshankeji.kotlinx.serialization.benchmark/Wrapper.$serializer.childSerializers|childSerializers(){}[0] - final fun deserialize(kotlinx.serialization.encoding/Decoder): com.huanshankeji.kotlinx.serialization.benchmark/Wrapper<#A1> // com.huanshankeji.kotlinx.serialization.benchmark/Wrapper.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] - final fun serialize(kotlinx.serialization.encoding/Encoder, com.huanshankeji.kotlinx.serialization.benchmark/Wrapper<#A1>) // com.huanshankeji.kotlinx.serialization.benchmark/Wrapper.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.huanshankeji.kotlinx.serialization.benchmark.Wrapper<1:0>){}[0] - final fun typeParametersSerializers(): kotlin/Array> // com.huanshankeji.kotlinx.serialization.benchmark/Wrapper.$serializer.typeParametersSerializers|typeParametersSerializers(){}[0] - } - - final object Companion : kotlinx.serialization.internal/SerializerFactory { // com.huanshankeji.kotlinx.serialization.benchmark/Wrapper.Companion|null[0] - final val $cachedDescriptor // com.huanshankeji.kotlinx.serialization.benchmark/Wrapper.Companion.$cachedDescriptor|{}$cachedDescriptor[0] - final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.huanshankeji.kotlinx.serialization.benchmark/Wrapper.Companion.$cachedDescriptor.|(){}[0] - - final fun <#A2: kotlin/Any?> serializer(kotlinx.serialization/KSerializer<#A2>): kotlinx.serialization/KSerializer> // com.huanshankeji.kotlinx.serialization.benchmark/Wrapper.Companion.serializer|serializer(kotlinx.serialization.KSerializer<0:0>){0§}[0] - final fun serializer(kotlin/Array>...): kotlinx.serialization/KSerializer<*> // com.huanshankeji.kotlinx.serialization.benchmark/Wrapper.Companion.serializer|serializer(kotlin.Array>...){}[0] - } -} - -final class <#A: kotlin/Any?> com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig { // com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig|null[0] - constructor (kotlin.reflect/KType, kotlinx.serialization/SerializationStrategy<#A>, #A) // com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig.|(kotlin.reflect.KType;kotlinx.serialization.SerializationStrategy<1:0>;1:0){}[0] - - final val data // com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig.data|{}data[0] - final fun (): #A // com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig.data.|(){}[0] - final val kType // com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig.kType|{}kType[0] - final fun (): kotlin.reflect/KType // com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig.kType.|(){}[0] - final val serializer // com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig.serializer|{}serializer[0] - final fun (): kotlinx.serialization/SerializationStrategy<#A> // com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig.serializer.|(){}[0] -} - -final class com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark : com.huanshankeji.kotlinx.serialization.benchmark/BaseBenchmark { // com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark|null[0] - constructor () // com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.|(){}[0] - - final var paramEnum // com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.paramEnum|{}paramEnum[0] - final fun (): com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.ParamEnum // com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.paramEnum.|(){}[0] - final fun (com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.ParamEnum) // com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.paramEnum.|(com.huanshankeji.kotlinx.serialization.benchmark.protobuf.ProtoBufBenchmark.ParamEnum){}[0] - - final fun serialize(): kotlin/ByteArray // com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.serialize|serialize(){}[0] - - final enum class ParamEnum : com.huanshankeji.kotlinx.serialization.benchmark/IParamEnum, kotlin/Enum { // com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.ParamEnum|null[0] - enum entry MaxDefaultLongWrapper // com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.ParamEnum.MaxDefaultLongWrapper|null[0] - enum entry MaxFixedLongWrapper // com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.ParamEnum.MaxFixedLongWrapper|null[0] - enum entry MaxLongWrapper // com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.ParamEnum.MaxLongWrapper|null[0] - enum entry ZeroDefaultLongWrapper // com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.ParamEnum.ZeroDefaultLongWrapper|null[0] - enum entry ZeroFixedLongWrapper // com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.ParamEnum.ZeroFixedLongWrapper|null[0] - enum entry ZeroLongWrapper // com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.ParamEnum.ZeroLongWrapper|null[0] - - final val dataSerializationConfig // com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.ParamEnum.dataSerializationConfig|{}dataSerializationConfig[0] - final fun (): com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig<*> // com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.ParamEnum.dataSerializationConfig.|(){}[0] - final val entries // com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.ParamEnum.entries|#static{}entries[0] - final fun (): kotlin.enums/EnumEntries // com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.ParamEnum.entries.|#static(){}[0] - - final fun valueOf(kotlin/String): com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.ParamEnum // com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.ParamEnum.valueOf|valueOf#static(kotlin.String){}[0] - final fun values(): kotlin/Array // com.huanshankeji.kotlinx.serialization.benchmark.protobuf/ProtoBufBenchmark.ParamEnum.values|values#static(){}[0] - } -} - -final class com.huanshankeji.kotlinx.serialization.benchmark/DefaultLongWrapper { // com.huanshankeji.kotlinx.serialization.benchmark/DefaultLongWrapper|null[0] - constructor (kotlin/Long) // com.huanshankeji.kotlinx.serialization.benchmark/DefaultLongWrapper.|(kotlin.Long){}[0] - - final val value // com.huanshankeji.kotlinx.serialization.benchmark/DefaultLongWrapper.value|{}value[0] - final fun (): kotlin/Long // com.huanshankeji.kotlinx.serialization.benchmark/DefaultLongWrapper.value.|(){}[0] - - final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.huanshankeji.kotlinx.serialization.benchmark/DefaultLongWrapper.$serializer|null[0] - final val descriptor // com.huanshankeji.kotlinx.serialization.benchmark/DefaultLongWrapper.$serializer.descriptor|{}descriptor[0] - final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.huanshankeji.kotlinx.serialization.benchmark/DefaultLongWrapper.$serializer.descriptor.|(){}[0] - - final fun childSerializers(): kotlin/Array> // com.huanshankeji.kotlinx.serialization.benchmark/DefaultLongWrapper.$serializer.childSerializers|childSerializers(){}[0] - final fun deserialize(kotlinx.serialization.encoding/Decoder): com.huanshankeji.kotlinx.serialization.benchmark/DefaultLongWrapper // com.huanshankeji.kotlinx.serialization.benchmark/DefaultLongWrapper.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] - final fun serialize(kotlinx.serialization.encoding/Encoder, com.huanshankeji.kotlinx.serialization.benchmark/DefaultLongWrapper) // com.huanshankeji.kotlinx.serialization.benchmark/DefaultLongWrapper.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.huanshankeji.kotlinx.serialization.benchmark.DefaultLongWrapper){}[0] - } - - final object Companion { // com.huanshankeji.kotlinx.serialization.benchmark/DefaultLongWrapper.Companion|null[0] - final fun serializer(): kotlinx.serialization/KSerializer // com.huanshankeji.kotlinx.serialization.benchmark/DefaultLongWrapper.Companion.serializer|serializer(){}[0] - } -} - -final class com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataBenchmark : com.huanshankeji.kotlinx.serialization.benchmark/BaseBenchmark { // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataBenchmark|null[0] - constructor () // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataBenchmark.|(){}[0] - - final var paramEnum // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataBenchmark.paramEnum|{}paramEnum[0] - final fun (): com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataParamEnum // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataBenchmark.paramEnum.|(){}[0] - final fun (com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataParamEnum) // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataBenchmark.paramEnum.|(com.huanshankeji.kotlinx.serialization.benchmark.DifferentDataParamEnum){}[0] - - final fun serializeToJsonWithSerializerFromKType(): kotlin/String // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataBenchmark.serializeToJsonWithSerializerFromKType|serializeToJsonWithSerializerFromKType(){}[0] - final fun serializeToJsonWithStaticSerializer(): kotlin/String // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataBenchmark.serializeToJsonWithStaticSerializer|serializeToJsonWithStaticSerializer(){}[0] - final fun serializeToProtobufWithSerializerFromKType(): kotlin/ByteArray // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataBenchmark.serializeToProtobufWithSerializerFromKType|serializeToProtobufWithSerializerFromKType(){}[0] - final fun serializeToProtobufWithStaticSerializer(): kotlin/ByteArray // com.huanshankeji.kotlinx.serialization.benchmark/DifferentDataBenchmark.serializeToProtobufWithStaticSerializer|serializeToProtobufWithStaticSerializer(){}[0] -} - -final class com.huanshankeji.kotlinx.serialization.benchmark/FixedLongWrapper { // com.huanshankeji.kotlinx.serialization.benchmark/FixedLongWrapper|null[0] - constructor (kotlin/Long) // com.huanshankeji.kotlinx.serialization.benchmark/FixedLongWrapper.|(kotlin.Long){}[0] - - final val value // com.huanshankeji.kotlinx.serialization.benchmark/FixedLongWrapper.value|{}value[0] - final fun (): kotlin/Long // com.huanshankeji.kotlinx.serialization.benchmark/FixedLongWrapper.value.|(){}[0] - - final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.huanshankeji.kotlinx.serialization.benchmark/FixedLongWrapper.$serializer|null[0] - final val descriptor // com.huanshankeji.kotlinx.serialization.benchmark/FixedLongWrapper.$serializer.descriptor|{}descriptor[0] - final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.huanshankeji.kotlinx.serialization.benchmark/FixedLongWrapper.$serializer.descriptor.|(){}[0] - - final fun childSerializers(): kotlin/Array> // com.huanshankeji.kotlinx.serialization.benchmark/FixedLongWrapper.$serializer.childSerializers|childSerializers(){}[0] - final fun deserialize(kotlinx.serialization.encoding/Decoder): com.huanshankeji.kotlinx.serialization.benchmark/FixedLongWrapper // com.huanshankeji.kotlinx.serialization.benchmark/FixedLongWrapper.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] - final fun serialize(kotlinx.serialization.encoding/Encoder, com.huanshankeji.kotlinx.serialization.benchmark/FixedLongWrapper) // com.huanshankeji.kotlinx.serialization.benchmark/FixedLongWrapper.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.huanshankeji.kotlinx.serialization.benchmark.FixedLongWrapper){}[0] - } - - final object Companion { // com.huanshankeji.kotlinx.serialization.benchmark/FixedLongWrapper.Companion|null[0] - final fun serializer(): kotlinx.serialization/KSerializer // com.huanshankeji.kotlinx.serialization.benchmark/FixedLongWrapper.Companion.serializer|serializer(){}[0] - } -} - -final class com.huanshankeji.kotlinx.serialization.benchmark/IntWrapper { // com.huanshankeji.kotlinx.serialization.benchmark/IntWrapper|null[0] - constructor (kotlin/Int) // com.huanshankeji.kotlinx.serialization.benchmark/IntWrapper.|(kotlin.Int){}[0] - - final val value // com.huanshankeji.kotlinx.serialization.benchmark/IntWrapper.value|{}value[0] - final fun (): kotlin/Int // com.huanshankeji.kotlinx.serialization.benchmark/IntWrapper.value.|(){}[0] - - final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.huanshankeji.kotlinx.serialization.benchmark/IntWrapper.$serializer|null[0] - final val descriptor // com.huanshankeji.kotlinx.serialization.benchmark/IntWrapper.$serializer.descriptor|{}descriptor[0] - final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.huanshankeji.kotlinx.serialization.benchmark/IntWrapper.$serializer.descriptor.|(){}[0] - - final fun childSerializers(): kotlin/Array> // com.huanshankeji.kotlinx.serialization.benchmark/IntWrapper.$serializer.childSerializers|childSerializers(){}[0] - final fun deserialize(kotlinx.serialization.encoding/Decoder): com.huanshankeji.kotlinx.serialization.benchmark/IntWrapper // com.huanshankeji.kotlinx.serialization.benchmark/IntWrapper.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] - final fun serialize(kotlinx.serialization.encoding/Encoder, com.huanshankeji.kotlinx.serialization.benchmark/IntWrapper) // com.huanshankeji.kotlinx.serialization.benchmark/IntWrapper.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.huanshankeji.kotlinx.serialization.benchmark.IntWrapper){}[0] - } - - final object Companion { // com.huanshankeji.kotlinx.serialization.benchmark/IntWrapper.Companion|null[0] - final fun serializer(): kotlinx.serialization/KSerializer // com.huanshankeji.kotlinx.serialization.benchmark/IntWrapper.Companion.serializer|serializer(){}[0] - } -} - -final class com.huanshankeji.kotlinx.serialization.benchmark/LongWrapper { // com.huanshankeji.kotlinx.serialization.benchmark/LongWrapper|null[0] - constructor (kotlin/Long) // com.huanshankeji.kotlinx.serialization.benchmark/LongWrapper.|(kotlin.Long){}[0] - - final val value // com.huanshankeji.kotlinx.serialization.benchmark/LongWrapper.value|{}value[0] - final fun (): kotlin/Long // com.huanshankeji.kotlinx.serialization.benchmark/LongWrapper.value.|(){}[0] - - final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.huanshankeji.kotlinx.serialization.benchmark/LongWrapper.$serializer|null[0] - final val descriptor // com.huanshankeji.kotlinx.serialization.benchmark/LongWrapper.$serializer.descriptor|{}descriptor[0] - final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.huanshankeji.kotlinx.serialization.benchmark/LongWrapper.$serializer.descriptor.|(){}[0] - - final fun childSerializers(): kotlin/Array> // com.huanshankeji.kotlinx.serialization.benchmark/LongWrapper.$serializer.childSerializers|childSerializers(){}[0] - final fun deserialize(kotlinx.serialization.encoding/Decoder): com.huanshankeji.kotlinx.serialization.benchmark/LongWrapper // com.huanshankeji.kotlinx.serialization.benchmark/LongWrapper.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] - final fun serialize(kotlinx.serialization.encoding/Encoder, com.huanshankeji.kotlinx.serialization.benchmark/LongWrapper) // com.huanshankeji.kotlinx.serialization.benchmark/LongWrapper.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.huanshankeji.kotlinx.serialization.benchmark.LongWrapper){}[0] - } - - final object Companion { // com.huanshankeji.kotlinx.serialization.benchmark/LongWrapper.Companion|null[0] - final fun serializer(): kotlinx.serialization/KSerializer // com.huanshankeji.kotlinx.serialization.benchmark/LongWrapper.Companion.serializer|serializer(){}[0] - } -} - -final class com.huanshankeji.kotlinx.serialization.benchmark/StringWrapper { // com.huanshankeji.kotlinx.serialization.benchmark/StringWrapper|null[0] - constructor (kotlin/String) // com.huanshankeji.kotlinx.serialization.benchmark/StringWrapper.|(kotlin.String){}[0] - - final val value // com.huanshankeji.kotlinx.serialization.benchmark/StringWrapper.value|{}value[0] - final fun (): kotlin/String // com.huanshankeji.kotlinx.serialization.benchmark/StringWrapper.value.|(){}[0] - - final object $serializer : kotlinx.serialization.internal/GeneratedSerializer { // com.huanshankeji.kotlinx.serialization.benchmark/StringWrapper.$serializer|null[0] - final val descriptor // com.huanshankeji.kotlinx.serialization.benchmark/StringWrapper.$serializer.descriptor|{}descriptor[0] - final fun (): kotlinx.serialization.descriptors/SerialDescriptor // com.huanshankeji.kotlinx.serialization.benchmark/StringWrapper.$serializer.descriptor.|(){}[0] - - final fun childSerializers(): kotlin/Array> // com.huanshankeji.kotlinx.serialization.benchmark/StringWrapper.$serializer.childSerializers|childSerializers(){}[0] - final fun deserialize(kotlinx.serialization.encoding/Decoder): com.huanshankeji.kotlinx.serialization.benchmark/StringWrapper // com.huanshankeji.kotlinx.serialization.benchmark/StringWrapper.$serializer.deserialize|deserialize(kotlinx.serialization.encoding.Decoder){}[0] - final fun serialize(kotlinx.serialization.encoding/Encoder, com.huanshankeji.kotlinx.serialization.benchmark/StringWrapper) // com.huanshankeji.kotlinx.serialization.benchmark/StringWrapper.$serializer.serialize|serialize(kotlinx.serialization.encoding.Encoder;com.huanshankeji.kotlinx.serialization.benchmark.StringWrapper){}[0] - } - - final object Companion { // com.huanshankeji.kotlinx.serialization.benchmark/StringWrapper.Companion|null[0] - final fun serializer(): kotlinx.serialization/KSerializer // com.huanshankeji.kotlinx.serialization.benchmark/StringWrapper.Companion.serializer|serializer(){}[0] - } -} - -final class com.huanshankeji.kotlinx.serialization.benchmark/TestDataBenchmark : com.huanshankeji.kotlinx.serialization.benchmark/BaseBenchmark { // com.huanshankeji.kotlinx.serialization.benchmark/TestDataBenchmark|null[0] - constructor () // com.huanshankeji.kotlinx.serialization.benchmark/TestDataBenchmark.|(){}[0] - - final fun serializeToJson(): kotlin/String // com.huanshankeji.kotlinx.serialization.benchmark/TestDataBenchmark.serializeToJson|serializeToJson(){}[0] - final fun serializeToJsonWithStaticSerializer(): kotlin/String // com.huanshankeji.kotlinx.serialization.benchmark/TestDataBenchmark.serializeToJsonWithStaticSerializer|serializeToJsonWithStaticSerializer(){}[0] - final fun serializeToProtobuf(): kotlin/ByteArray // com.huanshankeji.kotlinx.serialization.benchmark/TestDataBenchmark.serializeToProtobuf|serializeToProtobuf(){}[0] - final fun serializeToProtobufWithNothingWorkaround(): kotlin/ByteArray // com.huanshankeji.kotlinx.serialization.benchmark/TestDataBenchmark.serializeToProtobufWithNothingWorkaround|serializeToProtobufWithNothingWorkaround(){}[0] - final fun serializeToProtobufWithStaticSerializer(): kotlin/ByteArray // com.huanshankeji.kotlinx.serialization.benchmark/TestDataBenchmark.serializeToProtobufWithStaticSerializer|serializeToProtobufWithStaticSerializer(){}[0] -} - -final val com.huanshankeji.kotlinx.serialization.benchmark/maxDefaultLongWrapperDataSerializationConfig // com.huanshankeji.kotlinx.serialization.benchmark/maxDefaultLongWrapperDataSerializationConfig|{}maxDefaultLongWrapperDataSerializationConfig[0] - final fun (): com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig // com.huanshankeji.kotlinx.serialization.benchmark/maxDefaultLongWrapperDataSerializationConfig.|(){}[0] -final val com.huanshankeji.kotlinx.serialization.benchmark/maxFixedLongWrapperDataSerializationConfig // com.huanshankeji.kotlinx.serialization.benchmark/maxFixedLongWrapperDataSerializationConfig|{}maxFixedLongWrapperDataSerializationConfig[0] - final fun (): com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig // com.huanshankeji.kotlinx.serialization.benchmark/maxFixedLongWrapperDataSerializationConfig.|(){}[0] -final val com.huanshankeji.kotlinx.serialization.benchmark/maxLongWrapperDataSerializationConfig // com.huanshankeji.kotlinx.serialization.benchmark/maxLongWrapperDataSerializationConfig|{}maxLongWrapperDataSerializationConfig[0] - final fun (): com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig // com.huanshankeji.kotlinx.serialization.benchmark/maxLongWrapperDataSerializationConfig.|(){}[0] -final val com.huanshankeji.kotlinx.serialization.benchmark/testDataOfNothing // com.huanshankeji.kotlinx.serialization.benchmark/testDataOfNothing|{}testDataOfNothing[0] - final fun (): com.huanshankeji.kotlinx.serialization.benchmark/TestData // com.huanshankeji.kotlinx.serialization.benchmark/testDataOfNothing.|(){}[0] -final val com.huanshankeji.kotlinx.serialization.benchmark/testDataOfNothingDataSerializationConfig // com.huanshankeji.kotlinx.serialization.benchmark/testDataOfNothingDataSerializationConfig|{}testDataOfNothingDataSerializationConfig[0] - final fun (): com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig> // com.huanshankeji.kotlinx.serialization.benchmark/testDataOfNothingDataSerializationConfig.|(){}[0] -final val com.huanshankeji.kotlinx.serialization.benchmark/testDataOfNothingSerializer // com.huanshankeji.kotlinx.serialization.benchmark/testDataOfNothingSerializer|{}testDataOfNothingSerializer[0] - final fun (): kotlinx.serialization/SerializationStrategy> // com.huanshankeji.kotlinx.serialization.benchmark/testDataOfNothingSerializer.|(){}[0] -final val com.huanshankeji.kotlinx.serialization.benchmark/zeroDefaultLongWrapperDataSerializationConfig // com.huanshankeji.kotlinx.serialization.benchmark/zeroDefaultLongWrapperDataSerializationConfig|{}zeroDefaultLongWrapperDataSerializationConfig[0] - final fun (): com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig // com.huanshankeji.kotlinx.serialization.benchmark/zeroDefaultLongWrapperDataSerializationConfig.|(){}[0] -final val com.huanshankeji.kotlinx.serialization.benchmark/zeroFixedLongWrapperDataSerializationConfig // com.huanshankeji.kotlinx.serialization.benchmark/zeroFixedLongWrapperDataSerializationConfig|{}zeroFixedLongWrapperDataSerializationConfig[0] - final fun (): com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig // com.huanshankeji.kotlinx.serialization.benchmark/zeroFixedLongWrapperDataSerializationConfig.|(){}[0] -final val com.huanshankeji.kotlinx.serialization.benchmark/zeroLongWrapperDataSerializationConfig // com.huanshankeji.kotlinx.serialization.benchmark/zeroLongWrapperDataSerializationConfig|{}zeroLongWrapperDataSerializationConfig[0] - final fun (): com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig // com.huanshankeji.kotlinx.serialization.benchmark/zeroLongWrapperDataSerializationConfig.|(){}[0] - -final inline fun <#A: reified kotlin/Any?> com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig(#A): com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig<#A> // com.huanshankeji.kotlinx.serialization.benchmark/DataSerializationConfig|DataSerializationConfig(0:0){0§}[0] diff --git a/serialization/benchmark/jvm-only/api/kotlin-common-serialization-benchmark-jvm-only.api b/serialization/benchmark/jvm-only/api/kotlin-common-serialization-benchmark-jvm-only.api deleted file mode 100644 index 236fcc4..0000000 --- a/serialization/benchmark/jvm-only/api/kotlin-common-serialization-benchmark-jvm-only.api +++ /dev/null @@ -1,16 +0,0 @@ -public abstract class com/huanshankeji/kotlinx/serialization/benchmark/GoogleProtobufBaseBenchmark : com/huanshankeji/kotlinx/serialization/benchmark/BaseBenchmark { - public field paramEnum Lcom/huanshankeji/kotlinx/serialization/benchmark/GoogleProtobufBaseBenchmark$ParamEnum; - public fun ()V - public fun getParamEnum ()Lcom/huanshankeji/kotlinx/serialization/benchmark/GoogleProtobufBaseBenchmark$ParamEnum; - public fun setParamEnum (Lcom/huanshankeji/kotlinx/serialization/benchmark/GoogleProtobufBaseBenchmark$ParamEnum;)V -} - -public final class com/huanshankeji/kotlinx/serialization/benchmark/GoogleProtobufBaseBenchmark$ParamEnum : java/lang/Enum { - public static final field Max Lcom/huanshankeji/kotlinx/serialization/benchmark/GoogleProtobufBaseBenchmark$ParamEnum; - public static final field Zero Lcom/huanshankeji/kotlinx/serialization/benchmark/GoogleProtobufBaseBenchmark$ParamEnum; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public final fun getLongWrapper ()Lcom/huanshankeji/kotlinx/serialization/benchmark/LongWrapper; - public static fun valueOf (Ljava/lang/String;)Lcom/huanshankeji/kotlinx/serialization/benchmark/GoogleProtobufBaseBenchmark$ParamEnum; - public static fun values ()[Lcom/huanshankeji/kotlinx/serialization/benchmark/GoogleProtobufBaseBenchmark$ParamEnum; -} - diff --git a/vertx/api/kotlin-common-vertx.api b/vertx/api/kotlin-common-vertx.api index dc253fd..682d7e6 100644 --- a/vertx/api/kotlin-common-vertx.api +++ b/vertx/api/kotlin-common-vertx.api @@ -46,6 +46,10 @@ public final class com/huanshankeji/vertx/core/CombinedVerticleFunctions$Default public static fun subVerticlesStopUnit (Lcom/huanshankeji/vertx/core/CombinedVerticleFunctions;Lio/vertx/core/Promise;)V } +public final class com/huanshankeji/vertx/core/HandlerKt { + public static final fun plus (Lio/vertx/core/Handler;Lio/vertx/core/Handler;)Lio/vertx/core/Handler; +} + public final class com/huanshankeji/vertx/core/VertxKt { public static final fun deployVerticleOnAllCores (Lio/vertx/core/Vertx;Ljava/util/function/Supplier;)Lio/vertx/core/Future; } @@ -274,12 +278,24 @@ public final class com/huanshankeji/vertx/kotlin/sqlclient/PreparedQueryKt { public static final fun executeBatchAwaitForSqlResultSequence (Lio/vertx/sqlclient/PreparedQuery;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } +public final class com/huanshankeji/vertx/pgclient/PgPoolOptionsKt { + public static final fun setUpConventionally (Lio/vertx/pgclient/impl/PgPoolOptions;)V +} + +public final class com/huanshankeji/vertx/sqlclient/ClientBuilderKt { + public static final fun withCoConnectHandler (Lio/vertx/sqlclient/ClientBuilder;Lkotlin/jvm/functions/Function2;)Lio/vertx/sqlclient/ClientBuilder; +} + public final class com/huanshankeji/vertx/sqlclient/PreparedQueryBatchExecutionKt { public static final fun sortDataAndExecuteBatch (Lio/vertx/sqlclient/PreparedQuery;Ljava/util/List;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Lio/vertx/core/Future; public static final fun sortTuplesAndExecuteBatch (Lio/vertx/sqlclient/PreparedQuery;Ljava/util/List;Ljava/util/List;)Lio/vertx/core/Future; public static final fun sortTuplesAndExecuteBatch (Lio/vertx/sqlclient/PreparedQuery;Ljava/util/List;Lkotlin/jvm/functions/Function1;)Lio/vertx/core/Future; } +public final class com/huanshankeji/vertx/sqlclient/SqlConnectOptionsKt { + public static final fun setUpConventionally (Lio/vertx/sqlclient/SqlConnectOptions;)V +} + public final class com/huanshankeji/vertx/sqlclient/TupleKt { public static final fun toList (Lio/vertx/sqlclient/Tuple;)Ljava/util/List; } diff --git a/vertx/build.gradle.kts b/vertx/build.gradle.kts index 66dc2ca..d25a584 100644 --- a/vertx/build.gradle.kts +++ b/vertx/build.gradle.kts @@ -11,6 +11,9 @@ java { registerFeature("vertxSqlClient") { usingSourceSet(sourceSets["main"]) } + registerFeature("vertxPgClient") { + usingSourceSet(sourceSets["main"]) + } registerFeature("kotlinxIo") { usingSourceSet(sourceSets["main"]) } @@ -25,6 +28,7 @@ dependencies { implementation(moduleWithoutVersion("core")) "vertxWebImplementation"(moduleWithoutVersion("web")) "vertxSqlClientImplementation"(moduleWithoutVersion("sql-client")) + "vertxPgClientImplementation"(moduleWithoutVersion("pg-client")) implementation(moduleWithoutVersion("lang-kotlin")) implementation(moduleWithoutVersion("lang-kotlin-coroutines")) } diff --git a/vertx/src/main/kotlin/com/huanshankeji/vertx/core/Handler.kt b/vertx/src/main/kotlin/com/huanshankeji/vertx/core/Handler.kt new file mode 100644 index 0000000..c10da11 --- /dev/null +++ b/vertx/src/main/kotlin/com/huanshankeji/vertx/core/Handler.kt @@ -0,0 +1,20 @@ +package com.huanshankeji.vertx.core + +import com.huanshankeji.ExperimentalApi +import io.vertx.core.Handler + +typealias NullableHandler = Handler? + +@Suppress("NOTHING_TO_INLINE") +@ExperimentalApi +inline operator fun NullableHandler.plus(other: NullableHandler): NullableHandler = + if (this === null) + other + else if (other === null) + this + else { + Handler { + this@plus.handle(it) + other.handle(it) + } + } diff --git a/vertx/src/main/kotlin/com/huanshankeji/vertx/kotlin/coroutines/VertxCoroutine.kt b/vertx/src/main/kotlin/com/huanshankeji/vertx/kotlin/coroutines/VertxCoroutine.kt index c76c041..2b74489 100644 --- a/vertx/src/main/kotlin/com/huanshankeji/vertx/kotlin/coroutines/VertxCoroutine.kt +++ b/vertx/src/main/kotlin/com/huanshankeji/vertx/kotlin/coroutines/VertxCoroutine.kt @@ -18,8 +18,7 @@ import kotlin.coroutines.EmptyCoroutineContext * Execute the [block] code and close the [Vertx] instance like [kotlin.use] on an [AutoCloseable]. */ suspend inline fun Vertx.use(block: (Vertx) -> R): R = - @Suppress("MoveLambdaOutsideParentheses") - use(block, { close().coAwait() }) + use(block) { close().coAwait() } /** * Execute [blockingCode] that returns the a [T] instance with [Vertx.executeBlocking] diff --git a/vertx/src/main/kotlin/com/huanshankeji/vertx/pgclient/PgPoolOptions.kt b/vertx/src/main/kotlin/com/huanshankeji/vertx/pgclient/PgPoolOptions.kt new file mode 100644 index 0000000..dbdb889 --- /dev/null +++ b/vertx/src/main/kotlin/com/huanshankeji/vertx/pgclient/PgPoolOptions.kt @@ -0,0 +1,11 @@ +package com.huanshankeji.vertx.pgclient + +import io.vertx.pgclient.impl.PgPoolOptions + +/** + * Optimized for throughput. + */ +@Deprecated("This function causes `withTransaction` not to work.", ReplaceWith("")) +fun PgPoolOptions.setUpConventionally() { + isPipelined = true +} diff --git a/vertx/src/main/kotlin/com/huanshankeji/vertx/sqlclient/ClientBuilder.kt b/vertx/src/main/kotlin/com/huanshankeji/vertx/sqlclient/ClientBuilder.kt new file mode 100644 index 0000000..807bfc3 --- /dev/null +++ b/vertx/src/main/kotlin/com/huanshankeji/vertx/sqlclient/ClientBuilder.kt @@ -0,0 +1,23 @@ +package com.huanshankeji.vertx.sqlclient + +import io.vertx.kotlin.coroutines.coAwait +import io.vertx.sqlclient.ClientBuilder +import io.vertx.sqlclient.Pool +import io.vertx.sqlclient.SqlConnection +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch + +/** + * A coroutine variant of [ClientBuilder.withConnectHandler]. + * With this function, you don't need to call [SqlConnection.close] in [handler]. + */ +fun ClientBuilder<*>.withCoConnectHandler(handler: suspend (SqlConnection) -> Unit) = + withConnectHandler { + CoroutineScope(Dispatchers.Unconfined).launch { + // TODO What happens when there are exceptions in `handler`? Are they correctly propagated? + handler(it) + /** @see Pool.connectHandler */ + it.close().coAwait() + } + } diff --git a/vertx/src/main/kotlin/com/huanshankeji/vertx/sqlclient/SqlConnectOptions.kt b/vertx/src/main/kotlin/com/huanshankeji/vertx/sqlclient/SqlConnectOptions.kt new file mode 100644 index 0000000..3c07f06 --- /dev/null +++ b/vertx/src/main/kotlin/com/huanshankeji/vertx/sqlclient/SqlConnectOptions.kt @@ -0,0 +1,10 @@ +package com.huanshankeji.vertx.sqlclient + +import io.vertx.sqlclient.SqlConnectOptions + +/** + * Optimized for throughput. + */ +fun SqlConnectOptions.setUpConventionally() { + cachePreparedStatements = true +} diff --git a/vertx/with-context-receivers/api/kotlin-common-vertx-with-context-receivers.api b/vertx/with-context-receivers/api/kotlin-common-vertx-with-context-receivers.api deleted file mode 100644 index 41c7734..0000000 --- a/vertx/with-context-receivers/api/kotlin-common-vertx-with-context-receivers.api +++ /dev/null @@ -1,5 +0,0 @@ -public final class com/huanshankeji/vertx/kotlin/coroutines/ext/web/CoroutineHandlersKt { - public static final fun checkedCoroutineHandler (Lkotlinx/coroutines/CoroutineScope;Lio/vertx/ext/web/Route;Lkotlin/jvm/functions/Function2;)Lio/vertx/ext/web/Route; - public static final fun coroutineHandler (Lkotlinx/coroutines/CoroutineScope;Lio/vertx/ext/web/Route;Lkotlin/jvm/functions/Function2;)Lio/vertx/ext/web/Route; -} -