| // This file was automatically generated from polymorphism.md by Knit tool. Do not edit. |
| package example.examplePoly10 |
| |
| import kotlinx.serialization.* |
| import kotlinx.serialization.json.* |
| |
| import kotlinx.serialization.modules.* |
| |
| val module = SerializersModule { |
| polymorphic(Project::class) { |
| subclass(OwnedProject::class) |
| } |
| } |
| |
| val format = Json { serializersModule = module } |
| |
| interface Project { |
| val name: String |
| } |
| |
| @Serializable |
| @SerialName("owned") |
| class OwnedProject(override val name: String, val owner: String) : Project |
| |
| fun main() { |
| val data: Project = OwnedProject("kotlinx.coroutines", "kotlin") |
| println(format.encodeToString(data)) |
| } |