You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Support for `@Serializable inline class` with generated (requires 1.4.30 IR compiler) and custom serializers
* Standard serializers for UInt, ULong, UByte and UShort
* Unsigned types support for both streaming and tree Json
* Exclude folder with inline classes tests when legacy JVM compiler is used
* Add appendix with info about inline classes to documentation
Co-authored-by: Vsevolod Tolstopyatov <qwwdfsad@gmail.com>
Copy file name to clipboardExpand all lines: core/api/kotlinx-serialization-core.api
+64Lines changed: 64 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -145,6 +145,10 @@ public final class kotlinx/serialization/builtins/BuiltinSerializersKt {
145
145
public static final fun ShortArraySerializer ()Lkotlinx/serialization/KSerializer;
146
146
public static final fun TripleSerializer (Lkotlinx/serialization/KSerializer;Lkotlinx/serialization/KSerializer;Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;
147
147
public static final fun getNullable (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;
148
+
public static final fun serializer (Lkotlin/UByte$Companion;)Lkotlinx/serialization/KSerializer;
149
+
public static final fun serializer (Lkotlin/UInt$Companion;)Lkotlinx/serialization/KSerializer;
150
+
public static final fun serializer (Lkotlin/ULong$Companion;)Lkotlinx/serialization/KSerializer;
151
+
public static final fun serializer (Lkotlin/UShort$Companion;)Lkotlinx/serialization/KSerializer;
148
152
public static final fun serializer (Lkotlin/Unit;)Lkotlinx/serialization/KSerializer;
149
153
public static final fun serializer (Lkotlin/jvm/internal/BooleanCompanionObject;)Lkotlinx/serialization/KSerializer;
150
154
public static final fun serializer (Lkotlin/jvm/internal/ByteCompanionObject;)Lkotlinx/serialization/KSerializer;
@@ -242,11 +246,13 @@ public abstract interface class kotlinx/serialization/descriptors/SerialDescript
242
246
public abstract fun getKind ()Lkotlinx/serialization/descriptors/SerialKind;
243
247
public abstract fun getSerialName ()Ljava/lang/String;
244
248
public abstract fun isElementOptional (I)Z
249
+
public abstract fun isInline ()Z
245
250
public abstract fun isNullable ()Z
246
251
}
247
252
248
253
public final class kotlinx/serialization/descriptors/SerialDescriptor$DefaultImpls {
249
254
public static fun getAnnotations (Lkotlinx/serialization/descriptors/SerialDescriptor;)Ljava/util/List;
255
+
public static fun isInline (Lkotlinx/serialization/descriptors/SerialDescriptor;)Z
250
256
public static fun isNullable (Lkotlinx/serialization/descriptors/SerialDescriptor;)Z
251
257
}
252
258
@@ -315,6 +321,8 @@ public abstract class kotlinx/serialization/encoding/AbstractDecoder : kotlinx/s
315
321
public fun decodeEnum (Lkotlinx/serialization/descriptors/SerialDescriptor;)I
316
322
public fun decodeFloat ()F
317
323
public final fun decodeFloatElement (Lkotlinx/serialization/descriptors/SerialDescriptor;I)F
324
+
public fun decodeInline (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/Decoder;
325
+
public final fun decodeInlineElement (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Lkotlinx/serialization/encoding/Decoder;
318
326
public fun decodeInt ()I
319
327
public final fun decodeIntElement (Lkotlinx/serialization/descriptors/SerialDescriptor;I)I
320
328
public fun decodeLong ()J
@@ -352,6 +360,8 @@ public abstract class kotlinx/serialization/encoding/AbstractEncoder : kotlinx/s
352
360
public fun encodeEnum (Lkotlinx/serialization/descriptors/SerialDescriptor;I)V
353
361
public fun encodeFloat (F)V
354
362
public final fun encodeFloatElement (Lkotlinx/serialization/descriptors/SerialDescriptor;IF)V
363
+
public fun encodeInline (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/Encoder;
364
+
public final fun encodeInlineElement (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Lkotlinx/serialization/encoding/Encoder;
355
365
public fun encodeInt (I)V
356
366
public final fun encodeIntElement (Lkotlinx/serialization/descriptors/SerialDescriptor;II)V
357
367
public fun encodeLong (J)V
@@ -382,6 +392,7 @@ public abstract interface class kotlinx/serialization/encoding/CompositeDecoder
382
392
public abstract fun decodeDoubleElement (Lkotlinx/serialization/descriptors/SerialDescriptor;I)D
383
393
public abstract fun decodeElementIndex (Lkotlinx/serialization/descriptors/SerialDescriptor;)I
384
394
public abstract fun decodeFloatElement (Lkotlinx/serialization/descriptors/SerialDescriptor;I)F
395
+
public abstract fun decodeInlineElement (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Lkotlinx/serialization/encoding/Decoder;
385
396
public abstract fun decodeIntElement (Lkotlinx/serialization/descriptors/SerialDescriptor;I)I
386
397
public abstract fun decodeLongElement (Lkotlinx/serialization/descriptors/SerialDescriptor;I)J
387
398
public abstract fun decodeNullableSerializableElement (Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/DeserializationStrategy;Ljava/lang/Object;)Ljava/lang/Object;
@@ -411,6 +422,7 @@ public abstract interface class kotlinx/serialization/encoding/CompositeEncoder
411
422
public abstract fun encodeCharElement (Lkotlinx/serialization/descriptors/SerialDescriptor;IC)V
412
423
public abstract fun encodeDoubleElement (Lkotlinx/serialization/descriptors/SerialDescriptor;ID)V
413
424
public abstract fun encodeFloatElement (Lkotlinx/serialization/descriptors/SerialDescriptor;IF)V
425
+
public abstract fun encodeInlineElement (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Lkotlinx/serialization/encoding/Encoder;
414
426
public abstract fun encodeIntElement (Lkotlinx/serialization/descriptors/SerialDescriptor;II)V
415
427
public abstract fun encodeLongElement (Lkotlinx/serialization/descriptors/SerialDescriptor;IJ)V
416
428
public abstract fun encodeNullableSerializableElement (Lkotlinx/serialization/descriptors/SerialDescriptor;ILkotlinx/serialization/SerializationStrategy;Ljava/lang/Object;)V
@@ -434,6 +446,7 @@ public abstract interface class kotlinx/serialization/encoding/Decoder {
434
446
public abstract fun decodeDouble ()D
435
447
public abstract fun decodeEnum (Lkotlinx/serialization/descriptors/SerialDescriptor;)I
436
448
public abstract fun decodeFloat ()F
449
+
public abstract fun decodeInline (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/Decoder;
437
450
public abstract fun decodeInt ()I
438
451
public abstract fun decodeLong ()J
439
452
public abstract fun decodeNotNullMark ()Z
@@ -463,6 +476,7 @@ public abstract interface class kotlinx/serialization/encoding/Encoder {
463
476
public abstract fun encodeDouble (D)V
464
477
public abstract fun encodeEnum (Lkotlinx/serialization/descriptors/SerialDescriptor;I)V
465
478
public abstract fun encodeFloat (F)V
479
+
public abstract fun encodeInline (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/Encoder;
466
480
public abstract fun encodeInt (I)V
467
481
public abstract fun encodeLong (J)V
468
482
public abstract fun encodeNotNullMark ()V
@@ -691,6 +705,13 @@ public final class kotlinx/serialization/internal/HashSetSerializer : kotlinx/se
691
705
public synthetic fun toResult (Ljava/lang/Object;)Ljava/lang/Object;
692
706
}
693
707
708
+
public final class kotlinx/serialization/internal/InlineClassDescriptor : kotlinx/serialization/internal/PluginGeneratedSerialDescriptor {
709
+
public fun <init> (Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;)V
710
+
public fun equals (Ljava/lang/Object;)Z
711
+
public fun hashCode ()I
712
+
public fun isInline ()Z
713
+
}
714
+
694
715
public final class kotlinx/serialization/internal/IntArrayBuilder : kotlinx/serialization/internal/PrimitiveArrayBuilder {
695
716
public synthetic fun build$kotlinx_serialization_core ()Ljava/lang/Object;
696
717
}
@@ -878,6 +899,7 @@ public class kotlinx/serialization/internal/PluginGeneratedSerialDescriptor : ko
878
899
public fun getSerialNames ()Ljava/util/Set;
879
900
public fun hashCode ()I
880
901
public fun isElementOptional (I)Z
902
+
public fun isInline ()Z
881
903
public fun isNullable ()Z
882
904
public final fun pushAnnotation (Ljava/lang/annotation/Annotation;)V
883
905
public final fun pushClassAnnotation (Ljava/lang/annotation/Annotation;)V
@@ -975,6 +997,8 @@ public abstract class kotlinx/serialization/internal/TaggedDecoder : kotlinx/ser
975
997
public final fun decodeEnum (Lkotlinx/serialization/descriptors/SerialDescriptor;)I
976
998
public final fun decodeFloat ()F
977
999
public final fun decodeFloatElement (Lkotlinx/serialization/descriptors/SerialDescriptor;I)F
1000
+
public final fun decodeInline (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/Decoder;
1001
+
public final fun decodeInlineElement (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Lkotlinx/serialization/encoding/Decoder;
978
1002
public final fun decodeInt ()I
979
1003
public final fun decodeIntElement (Lkotlinx/serialization/descriptors/SerialDescriptor;I)I
980
1004
public final fun decodeLong ()J
@@ -997,6 +1021,7 @@ public abstract class kotlinx/serialization/internal/TaggedDecoder : kotlinx/ser
997
1021
protected fun decodeTaggedDouble (Ljava/lang/Object;)D
998
1022
protected fun decodeTaggedEnum (Ljava/lang/Object;Lkotlinx/serialization/descriptors/SerialDescriptor;)I
999
1023
protected fun decodeTaggedFloat (Ljava/lang/Object;)F
1024
+
protected fun decodeTaggedInline (Ljava/lang/Object;Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/Decoder;
1000
1025
protected fun decodeTaggedInt (Ljava/lang/Object;)I
1001
1026
protected fun decodeTaggedLong (Ljava/lang/Object;)J
1002
1027
protected fun decodeTaggedNotNullMark (Ljava/lang/Object;)Z
@@ -1028,6 +1053,8 @@ public abstract class kotlinx/serialization/internal/TaggedEncoder : kotlinx/ser
1028
1053
public final fun encodeEnum (Lkotlinx/serialization/descriptors/SerialDescriptor;I)V
1029
1054
public final fun encodeFloat (F)V
1030
1055
public final fun encodeFloatElement (Lkotlinx/serialization/descriptors/SerialDescriptor;IF)V
1056
+
public final fun encodeInline (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/Encoder;
1057
+
public final fun encodeInlineElement (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Lkotlinx/serialization/encoding/Encoder;
1031
1058
public final fun encodeInt (I)V
1032
1059
public final fun encodeIntElement (Lkotlinx/serialization/descriptors/SerialDescriptor;II)V
1033
1060
public final fun encodeLong (J)V
@@ -1048,6 +1075,7 @@ public abstract class kotlinx/serialization/internal/TaggedEncoder : kotlinx/ser
1048
1075
protected fun encodeTaggedDouble (Ljava/lang/Object;D)V
1049
1076
protected fun encodeTaggedEnum (Ljava/lang/Object;Lkotlinx/serialization/descriptors/SerialDescriptor;I)V
1050
1077
protected fun encodeTaggedFloat (Ljava/lang/Object;F)V
1078
+
protected fun encodeTaggedInline (Ljava/lang/Object;Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/Encoder;
1051
1079
protected fun encodeTaggedInt (Ljava/lang/Object;I)V
1052
1080
protected fun encodeTaggedLong (Ljava/lang/Object;J)V
1053
1081
protected fun encodeTaggedNull (Ljava/lang/Object;)V
@@ -1074,6 +1102,42 @@ public final class kotlinx/serialization/internal/TripleSerializer : kotlinx/ser
1074
1102
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lkotlin/Triple;)V
1075
1103
}
1076
1104
1105
+
public final class kotlinx/serialization/internal/UByteSerializer : kotlinx/serialization/KSerializer {
1106
+
public static final field INSTANCE Lkotlinx/serialization/internal/UByteSerializer;
1107
+
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
1108
+
public fun deserialize-Wa3L5BU (Lkotlinx/serialization/encoding/Decoder;)B
1109
+
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
1110
+
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
1111
+
public fun serialize-EK-6454 (Lkotlinx/serialization/encoding/Encoder;B)V
1112
+
}
1113
+
1114
+
public final class kotlinx/serialization/internal/UIntSerializer : kotlinx/serialization/KSerializer {
1115
+
public static final field INSTANCE Lkotlinx/serialization/internal/UIntSerializer;
1116
+
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
1117
+
public fun deserialize-OGnWXxg (Lkotlinx/serialization/encoding/Decoder;)I
1118
+
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
1119
+
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
1120
+
public fun serialize-Qn1smSk (Lkotlinx/serialization/encoding/Encoder;I)V
1121
+
}
1122
+
1123
+
public final class kotlinx/serialization/internal/ULongSerializer : kotlinx/serialization/KSerializer {
1124
+
public static final field INSTANCE Lkotlinx/serialization/internal/ULongSerializer;
1125
+
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
1126
+
public fun deserialize-I7RO_PI (Lkotlinx/serialization/encoding/Decoder;)J
1127
+
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
1128
+
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
1129
+
public fun serialize-2TYgG_w (Lkotlinx/serialization/encoding/Encoder;J)V
1130
+
}
1131
+
1132
+
public final class kotlinx/serialization/internal/UShortSerializer : kotlinx/serialization/KSerializer {
1133
+
public static final field INSTANCE Lkotlinx/serialization/internal/UShortSerializer;
1134
+
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
1135
+
public fun deserialize-BwKQO78 (Lkotlinx/serialization/encoding/Decoder;)S
1136
+
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
1137
+
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
1138
+
public fun serialize-i8woANY (Lkotlinx/serialization/encoding/Encoder;S)V
1139
+
}
1140
+
1077
1141
public final class kotlinx/serialization/internal/UnitSerializer : kotlinx/serialization/KSerializer {
1078
1142
public static final field INSTANCE Lkotlinx/serialization/internal/UnitSerializer;
1079
1143
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
0 commit comments