1 // This file was automatically generated from serializers.md by Knit tool. Do not edit. 2 package example.exampleSerializer07 3 4 import kotlinx.serialization.* 5 import kotlinx.serialization.json.* 6 import kotlinx.serialization.encoding.* 7 import kotlinx.serialization.descriptors.* 8 9 object ColorAsStringSerializer : KSerializer<Color> { 10 override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("Color", PrimitiveKind.STRING) 11 serializenull12 override fun serialize(encoder: Encoder, value: Color) { 13 val string = value.rgb.toString(16).padStart(6, '0') 14 encoder.encodeString(string) 15 } 16 deserializenull17 override fun deserialize(decoder: Decoder): Color { 18 val string = decoder.decodeString() 19 return Color(string.toInt(16)) 20 } 21 } 22 23 @Serializable(with = ColorAsStringSerializer::class) 24 class Color(val rgb: Int) 25 mainnull26fun main() { 27 val green = Color(0x00ff00) 28 println(Json.encodeToString(green)) 29 } 30