1 // This file was automatically generated from serializers.md by Knit tool. Do not edit. 2 package example.exampleSerializer19 3 4 import kotlinx.serialization.* 5 import kotlinx.serialization.json.* 6 import kotlinx.serialization.encoding.* 7 import kotlinx.serialization.descriptors.* 8 9 @Serializable(with = BoxSerializer::class) 10 data class Box<T>(val contents: T) 11 12 class BoxSerializer<T>(private val dataSerializer: KSerializer<T>) : KSerializer<Box<T>> { 13 override val descriptor: SerialDescriptor = dataSerializer.descriptor serializenull14 override fun serialize(encoder: Encoder, value: Box<T>) = dataSerializer.serialize(encoder, value.contents) 15 override fun deserialize(decoder: Decoder) = Box(dataSerializer.deserialize(decoder)) 16 } 17 18 @Serializable 19 data class Project(val name: String) 20 21 fun main() { 22 val box = Box(Project("kotlinx.serialization")) 23 val string = Json.encodeToString(box) 24 println(string) 25 println(Json.decodeFromString<Box<Project>>(string)) 26 } 27