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