blob: 86aafe42d2e278b5a71a94f2db086e382faccd80 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
/*
* Copyright 2017-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
*/
package kotlinx.serialization
import kotlinx.serialization.modules.*
import kotlin.native.concurrent.*
@Serializable
abstract class SimpleAbstract
@Serializable
data class SimpleIntInheritor(val i: Int, val s: String) : SimpleAbstract()
@Serializable
data class SimpleStringInheritor(val s: String, val i: Int) : SimpleAbstract()
@Serializable
data class PolyBox(@Polymorphic val boxed: SimpleAbstract)
@SharedImmutable
val SimplePolymorphicModule = SerializersModule {
polymorphic(SimpleAbstract::class) {
subclass(SimpleIntInheritor.serializer())
subclass(SimpleStringInheritor.serializer())
}
}
@Serializable
sealed class SimpleSealed {
@Serializable
public data class SubSealedA(val s: String) : SimpleSealed()
@Serializable
public data class SubSealedB(val i: Int) : SimpleSealed()
}
@Serializable
data class SealedBox(val boxed: List<SimpleSealed>)
|