1*57b5a4a6SAndroid Build Coastguard Worker // This file was automatically generated from polymorphism.md by Knit tool. Do not edit. 2*57b5a4a6SAndroid Build Coastguard Worker package example.examplePoly16 3*57b5a4a6SAndroid Build Coastguard Worker 4*57b5a4a6SAndroid Build Coastguard Worker import kotlinx.serialization.* 5*57b5a4a6SAndroid Build Coastguard Worker import kotlinx.serialization.json.* 6*57b5a4a6SAndroid Build Coastguard Worker 7*57b5a4a6SAndroid Build Coastguard Worker import kotlinx.serialization.modules.* 8*57b5a4a6SAndroid Build Coastguard Worker import kotlin.reflect.KClass 9*57b5a4a6SAndroid Build Coastguard Worker <lambda>null10*57b5a4a6SAndroid Build Coastguard Workerval module = SerializersModule { 11*57b5a4a6SAndroid Build Coastguard Worker fun PolymorphicModuleBuilder<Project>.registerProjectSubclasses() { 12*57b5a4a6SAndroid Build Coastguard Worker subclass(OwnedProject::class) 13*57b5a4a6SAndroid Build Coastguard Worker } 14*57b5a4a6SAndroid Build Coastguard Worker polymorphic(Any::class) { registerProjectSubclasses() } 15*57b5a4a6SAndroid Build Coastguard Worker polymorphic(Project::class) { registerProjectSubclasses() } 16*57b5a4a6SAndroid Build Coastguard Worker } 17*57b5a4a6SAndroid Build Coastguard Worker <lambda>null18*57b5a4a6SAndroid Build Coastguard Workerval format = Json { serializersModule = module } 19*57b5a4a6SAndroid Build Coastguard Worker 20*57b5a4a6SAndroid Build Coastguard Worker interface Project { 21*57b5a4a6SAndroid Build Coastguard Worker val name: String 22*57b5a4a6SAndroid Build Coastguard Worker } 23*57b5a4a6SAndroid Build Coastguard Worker 24*57b5a4a6SAndroid Build Coastguard Worker @Serializable 25*57b5a4a6SAndroid Build Coastguard Worker @SerialName("owned") 26*57b5a4a6SAndroid Build Coastguard Worker class OwnedProject(override val name: String, val owner: String) : Project 27*57b5a4a6SAndroid Build Coastguard Worker 28*57b5a4a6SAndroid Build Coastguard Worker @Serializable 29*57b5a4a6SAndroid Build Coastguard Worker class Data( 30*57b5a4a6SAndroid Build Coastguard Worker val project: Project, 31*57b5a4a6SAndroid Build Coastguard Worker @Polymorphic val any: Any 32*57b5a4a6SAndroid Build Coastguard Worker ) 33*57b5a4a6SAndroid Build Coastguard Worker mainnull34*57b5a4a6SAndroid Build Coastguard Workerfun main() { 35*57b5a4a6SAndroid Build Coastguard Worker val project = OwnedProject("kotlinx.coroutines", "kotlin") 36*57b5a4a6SAndroid Build Coastguard Worker val data = Data(project, project) 37*57b5a4a6SAndroid Build Coastguard Worker println(format.encodeToString(data)) 38*57b5a4a6SAndroid Build Coastguard Worker } 39