1*57b5a4a6SAndroid Build Coastguard Worker // This file was automatically generated from serializers.md by Knit tool. Do not edit. 2*57b5a4a6SAndroid Build Coastguard Worker package example.exampleSerializer21 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 import kotlinx.serialization.encoding.* 7*57b5a4a6SAndroid Build Coastguard Worker import kotlinx.serialization.descriptors.* 8*57b5a4a6SAndroid Build Coastguard Worker 9*57b5a4a6SAndroid Build Coastguard Worker import kotlinx.serialization.modules.* 10*57b5a4a6SAndroid Build Coastguard Worker import java.util.Date 11*57b5a4a6SAndroid Build Coastguard Worker import java.text.SimpleDateFormat 12*57b5a4a6SAndroid Build Coastguard Worker 13*57b5a4a6SAndroid Build Coastguard Worker object DateAsLongSerializer : KSerializer<Date> { 14*57b5a4a6SAndroid Build Coastguard Worker override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("Date", PrimitiveKind.LONG) serializenull15*57b5a4a6SAndroid Build Coastguard Worker override fun serialize(encoder: Encoder, value: Date) = encoder.encodeLong(value.time) 16*57b5a4a6SAndroid Build Coastguard Worker override fun deserialize(decoder: Decoder): Date = Date(decoder.decodeLong()) 17*57b5a4a6SAndroid Build Coastguard Worker } 18*57b5a4a6SAndroid Build Coastguard Worker 19*57b5a4a6SAndroid Build Coastguard Worker @Serializable 20*57b5a4a6SAndroid Build Coastguard Worker class ProgrammingLanguage( 21*57b5a4a6SAndroid Build Coastguard Worker val name: String, 22*57b5a4a6SAndroid Build Coastguard Worker @Contextual 23*57b5a4a6SAndroid Build Coastguard Worker val stableReleaseDate: Date 24*57b5a4a6SAndroid Build Coastguard Worker ) 25*57b5a4a6SAndroid Build Coastguard Worker 26*57b5a4a6SAndroid Build Coastguard Worker private val module = SerializersModule { 27*57b5a4a6SAndroid Build Coastguard Worker contextual(DateAsLongSerializer) 28*57b5a4a6SAndroid Build Coastguard Worker } 29*57b5a4a6SAndroid Build Coastguard Worker <lambda>null30*57b5a4a6SAndroid Build Coastguard Workerval format = Json { serializersModule = module } 31*57b5a4a6SAndroid Build Coastguard Worker mainnull32*57b5a4a6SAndroid Build Coastguard Workerfun main() { 33*57b5a4a6SAndroid Build Coastguard Worker val data = ProgrammingLanguage("Kotlin", SimpleDateFormat("yyyy-MM-ddX").parse("2016-02-15+00")) 34*57b5a4a6SAndroid Build Coastguard Worker println(format.encodeToString(data)) 35*57b5a4a6SAndroid Build Coastguard Worker } 36