1 // This file was automatically generated from serializers.md by Knit tool. Do not edit. 2 package example.exampleSerializer10 3 4 import kotlinx.serialization.* 5 import kotlinx.serialization.json.* 6 import kotlinx.serialization.encoding.* 7 import kotlinx.serialization.descriptors.* 8 9 import kotlinx.serialization.builtins.IntArraySerializer 10 11 class ColorIntArraySerializer : KSerializer<Color> { 12 private val delegateSerializer = IntArraySerializer() 13 override val descriptor = SerialDescriptor("Color", delegateSerializer.descriptor) 14 serializenull15 override fun serialize(encoder: Encoder, value: Color) { 16 val data = intArrayOf( 17 (value.rgb shr 16) and 0xFF, 18 (value.rgb shr 8) and 0xFF, 19 value.rgb and 0xFF 20 ) 21 encoder.encodeSerializableValue(delegateSerializer, data) 22 } 23 deserializenull24 override fun deserialize(decoder: Decoder): Color { 25 val array = decoder.decodeSerializableValue(delegateSerializer) 26 return Color((array[0] shl 16) or (array[1] shl 8) or array[2]) 27 } 28 } 29 30 @Serializable(with = ColorIntArraySerializer::class) 31 class Color(val rgb: Int) 32 mainnull33fun main() { 34 val green = Color(0x00ff00) 35 println(Json.encodeToString(green)) 36 } 37