• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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