1 /* 2 * Copyright 2017-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. 3 */ 4 5 package kotlinx.serialization.internal 6 7 import kotlinx.serialization.* 8 import kotlinx.serialization.builtins.* 9 import kotlinx.serialization.descriptors.* 10 import kotlinx.serialization.encoding.* 11 12 @PublishedApi 13 internal object UIntSerializer : KSerializer<UInt> { 14 override val descriptor: SerialDescriptor = InlinePrimitiveDescriptor("kotlin.UInt", Int.serializer()) 15 serializenull16 override fun serialize(encoder: Encoder, value: UInt) { 17 encoder.encodeInline(descriptor).encodeInt(value.toInt()) 18 } 19 deserializenull20 override fun deserialize(decoder: Decoder): UInt { 21 return decoder.decodeInline(descriptor).decodeInt().toUInt() 22 } 23 } 24 25 @PublishedApi 26 internal object ULongSerializer : KSerializer<ULong> { 27 override val descriptor: SerialDescriptor = InlinePrimitiveDescriptor("kotlin.ULong", Long.serializer()) 28 serializenull29 override fun serialize(encoder: Encoder, value: ULong) { 30 encoder.encodeInline(descriptor).encodeLong(value.toLong()) 31 } 32 deserializenull33 override fun deserialize(decoder: Decoder): ULong { 34 return decoder.decodeInline(descriptor).decodeLong().toULong() 35 } 36 } 37 38 @PublishedApi 39 internal object UByteSerializer : KSerializer<UByte> { 40 override val descriptor: SerialDescriptor = InlinePrimitiveDescriptor("kotlin.UByte", Byte.serializer()) 41 serializenull42 override fun serialize(encoder: Encoder, value: UByte) { 43 encoder.encodeInline(descriptor).encodeByte(value.toByte()) 44 } 45 deserializenull46 override fun deserialize(decoder: Decoder): UByte { 47 return decoder.decodeInline(descriptor).decodeByte().toUByte() 48 } 49 } 50 51 @PublishedApi 52 internal object UShortSerializer : KSerializer<UShort> { 53 override val descriptor: SerialDescriptor = InlinePrimitiveDescriptor("kotlin.UShort", Short.serializer()) 54 serializenull55 override fun serialize(encoder: Encoder, value: UShort) { 56 encoder.encodeInline(descriptor).encodeShort(value.toShort()) 57 } 58 deserializenull59 override fun deserialize(decoder: Decoder): UShort { 60 return decoder.decodeInline(descriptor).decodeShort().toUShort() 61 } 62 } 63