• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // This file was automatically generated from polymorphism.md by Knit tool. Do not edit.
2 package example.examplePoly18
3 
4 import kotlinx.serialization.*
5 import kotlinx.serialization.json.*
6 
7 import kotlinx.serialization.modules.*
8 
9 @Serializable
10 abstract class Project {
11     abstract val name: String
12 }
13 
14 @Serializable
15 @SerialName("OwnedProject")
16 data class OwnedProject(override val name: String, val owner: String) : Project()
17 
<lambda>null18 val module = SerializersModule {
19     polymorphic(Project::class) {
20         subclass(OwnedProject::class)
21     }
22 }
23 
<lambda>null24 val format = Json { serializersModule = module }
25 
mainnull26 fun main() {
27     println(format.decodeFromString<Project>("""
28         {"type":"unknown","name":"example"}
29     """))
30 }
31