Skip to content

Commit 67ecd3b

Browse files
Merge pull request #1299 from modelix/dependabot/gradle/org.jetbrains.kotlinx-kotlinx-serialization-json-1.8.0
build(deps): bump org.jetbrains.kotlinx:kotlinx-serialization-json from 1.7.3 to 1.8.0
2 parents 3281185 + 26772f4 commit 67ecd3b

File tree

2 files changed

+10
-36
lines changed

2 files changed

+10
-36
lines changed

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ kotlin = "2.1.10"
2828
kotlinCoroutines="1.10.1"
2929
ktor="3.0.3"
3030
kotlinHtml="0.8.0"
31-
kotlinSerialization="1.7.3"
31+
kotlinSerialization="1.8.0"
3232
ignite="2.16.0"
3333
apacheCxf="3.6.5"
3434
node="22.13.1"

modelql-core/src/commonMain/kotlin/org/modelix/modelql/core/ZipStep.kt

Lines changed: 9 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@ import com.badoo.reaktive.observable.zip
99
import com.badoo.reaktive.single.asObservable
1010
import com.badoo.reaktive.single.map
1111
import kotlinx.serialization.ExperimentalSerializationApi
12+
import kotlinx.serialization.InternalSerializationApi
1213
import kotlinx.serialization.KSerializer
1314
import kotlinx.serialization.SerialName
1415
import kotlinx.serialization.Serializable
1516
import kotlinx.serialization.descriptors.SerialDescriptor
16-
import kotlinx.serialization.descriptors.SerialKind
1717
import kotlinx.serialization.descriptors.StructureKind
18+
import kotlinx.serialization.descriptors.buildSerialDescriptor
1819
import kotlinx.serialization.encoding.CompositeDecoder
1920
import kotlinx.serialization.encoding.Decoder
2021
import kotlinx.serialization.encoding.Encoder
@@ -206,7 +207,13 @@ class ZipOutputSerializer<CommonT, Out : IZipOutput<CommonT>>(
206207
override val descriptor: SerialDescriptor = if (elementSerializers.size == 1) {
207208
elementSerializers.single().descriptor
208209
} else {
209-
ZipNOutputDesc(elementSerializers.map { it.descriptor }.toTypedArray())
210+
val typeParameters = elementSerializers.map { it.descriptor }.toTypedArray()
211+
@OptIn(InternalSerializationApi::class)
212+
buildSerialDescriptor("modelix.zipN", StructureKind.LIST, *typeParameters) {
213+
elementSerializers.forEachIndexed { index, elementSerializer ->
214+
element(index.toString(), elementSerializer.descriptor)
215+
}
216+
}
210217
}
211218

212219
override fun serialize(encoder: Encoder, value: ZipStepOutput<Out, CommonT>) {
@@ -222,39 +229,6 @@ class ZipOutputSerializer<CommonT, Out : IZipOutput<CommonT>>(
222229
}
223230
}
224231

225-
internal class ZipNOutputDesc(val elementDesc: Array<SerialDescriptor>) : SerialDescriptor {
226-
@ExperimentalSerializationApi
227-
override val elementsCount: Int
228-
get() = elementDesc.size
229-
230-
@ExperimentalSerializationApi
231-
override val kind: SerialKind
232-
get() = StructureKind.LIST
233-
234-
@ExperimentalSerializationApi
235-
override val serialName: String
236-
get() = "modelix.zipN"
237-
238-
@ExperimentalSerializationApi
239-
override fun getElementAnnotations(index: Int): List<Annotation> = emptyList()
240-
241-
@ExperimentalSerializationApi
242-
override fun getElementDescriptor(index: Int): SerialDescriptor = elementDesc[index]
243-
244-
@ExperimentalSerializationApi
245-
override fun getElementIndex(name: String): Int {
246-
return name.toIntOrNull() ?: throw IllegalArgumentException("$name is not a valid list index")
247-
}
248-
249-
@ExperimentalSerializationApi
250-
override fun getElementName(index: Int): String {
251-
return index.toString()
252-
}
253-
254-
@ExperimentalSerializationApi
255-
override fun isElementOptional(index: Int): Boolean = false
256-
}
257-
258232
data class ZipStepOutput<E : IZipOutput<Common>, Common>(val values: List<IStepOutput<Common>>) : IStepOutput<E> {
259233
override val value: E
260234
get() = ZipNOutput(values.map { it.value }) as E

0 commit comments

Comments
 (0)