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
Copy file name to clipboardExpand all lines: docs/formats.md
+5-9Lines changed: 5 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -332,7 +332,7 @@ The main concept in this part of the library is [CborElement]. Read on to learn
332
332
#### Encoding from/to `CborElement`
333
333
334
334
Bytes can be decoded into an instance of `CborElement` with the [Cbor.decodeFromByteArray] function by either manually
335
-
specifying [CborElement.serializer()] or specifying [CborElement] as generic type parameter.
335
+
specifying `CborElement.serializer()` or specifying [CborElement] as generic type parameter.
336
336
It is also possible to encode arbitrary serializable structures to a `CborElement` through [Cbor.encodeToCborElement].
337
337
338
338
Since these operations use the same code paths as regular serialization (but with specialized serializers), the config flags
@@ -417,18 +417,16 @@ A [CborElement] class has three direct subtypes, closely following CBOR grammar:
417
417
`CborPrimitive` is itself an umbrella type (a sealed class) for the following concrete primitives:
418
418
*[CborNull] mapping to a Kotlin `null`
419
419
*[CborBoolean] mapping to a Kotlin `Boolean`
420
-
*[CborInt] which is an umbrella type (a sealed class) itself for the following concrete types
421
-
(it is still possible to instantiate it as the `invoke` operator on its companion is overridden accordingly):
422
-
*[CborPositiveInt] represents all `Long` numbers `≥0`
423
-
*[CborNegativeInt] represents all `Long` numbers `<0`
420
+
*[CborInt] represents signed CBOR integer (major type 1 encompassing `-2^64..-1`) and unsigned CBOR integer (major type 0 encompassing `0..2^64-1`).
421
+
Since this exceeds the range of Kotlin's built-in `Long` type, CborInt consists of `sign` (set to `CborInt.Sing.POSITIVE`, `CborInt.Sing.NEGATIVE`, or `CborInt.Sing.ZERO`) and `value` representing the absolute value as an `ULong`. It also features a `toLong()` function, albeit incurring possible truncation for negative values exceeding `Long.MIN_VALUE`.
424
422
*[CborString] maps to a Kotlin `String`
425
423
*[CborFloat] maps to Kotlin `Double`
426
424
*[CborByteString] maps to a Kotlin `ByteArray` and is used to encode them as CBOR byte string (in contrast to a list
427
425
of individual bytes)
428
426
429
-
*[CborList] represents a CBOR array. It is a Kotlin [List] of `CborElement` items.
427
+
*[CborList] represents a CBOR array. It is a Kotlin `List` of `CborElement` items.
430
428
431
-
*[CborMap] represents a CBOR map/object. It is a Kotlin [Map] from `CborElement` keys to `CborElement` values.
429
+
*[CborMap] represents a CBOR map/object. It is a Kotlin `Map` from `CborElement` keys to `CborElement` values.
432
430
This is typically the result of serializing an arbitrary
433
431
434
432
@@ -1797,8 +1795,6 @@ This chapter concludes [Kotlin Serialization Guide](serialization-guide.md).
Copy file name to clipboardExpand all lines: formats/cbor/api/kotlinx-serialization-cbor.klib.api
+30-25Lines changed: 30 additions & 25 deletions
Original file line number
Diff line number
Diff line change
@@ -148,6 +148,36 @@ final class kotlinx.serialization.cbor/CborFloat : kotlinx.serialization.cbor/Cb
148
148
}
149
149
}
150
150
151
+
final class kotlinx.serialization.cbor/CborInt : kotlinx.serialization.cbor/CborPrimitive<kotlin/ULong> { // kotlinx.serialization.cbor/CborInt|null[0]
enum entry ZERO // kotlinx.serialization.cbor/CborInt.Sign.ZERO|null[0]
166
+
167
+
final val entries // kotlinx.serialization.cbor/CborInt.Sign.entries|#static{}entries[0]
168
+
final fun <get-entries>(): kotlin.enums/EnumEntries<kotlinx.serialization.cbor/CborInt.Sign> // kotlinx.serialization.cbor/CborInt.Sign.entries.<get-entries>|<get-entries>#static(){}[0]
169
+
170
+
final fun valueOf(kotlin/String): kotlinx.serialization.cbor/CborInt.Sign // kotlinx.serialization.cbor/CborInt.Sign.valueOf|valueOf#static(kotlin.String){}[0]
171
+
final fun values(): kotlin/Array<kotlinx.serialization.cbor/CborInt.Sign> // kotlinx.serialization.cbor/CborInt.Sign.values|values#static(){}[0]
172
+
}
173
+
174
+
final object Companion { // kotlinx.serialization.cbor/CborInt.Companion|null[0]
175
+
final fun invoke(kotlin/Long, kotlin/ULongArray...): kotlinx.serialization.cbor/CborInt // kotlinx.serialization.cbor/CborInt.Companion.invoke|invoke(kotlin.Long;kotlin.ULongArray...){}[0]
176
+
final fun invoke(kotlin/ULong, kotlin/ULongArray...): kotlinx.serialization.cbor/CborInt // kotlinx.serialization.cbor/CborInt.Companion.invoke|invoke(kotlin.ULong;kotlin.ULongArray...){}[0]
177
+
final fun serializer(): kotlinx.serialization/KSerializer<kotlinx.serialization.cbor/CborInt> // kotlinx.serialization.cbor/CborInt.Companion.serializer|serializer(){}[0]
178
+
}
179
+
}
180
+
151
181
final class kotlinx.serialization.cbor/CborList : kotlin.collections/List<kotlinx.serialization.cbor/CborElement>, kotlinx.serialization.cbor/CborElement { // kotlinx.serialization.cbor/CborList|null[0]
@@ -204,14 +234,6 @@ final class kotlinx.serialization.cbor/CborMap : kotlin.collections/Map<kotlinx.
204
234
final fun asJsReadonlyMapView(): kotlin.js.collections/JsReadonlyMap<kotlinx.serialization.cbor/CborElement, kotlinx.serialization.cbor/CborElement> // kotlinx.serialization.cbor/CborMap.asJsReadonlyMapView|asJsReadonlyMapView(){}[0]
205
235
}
206
236
207
-
final class kotlinx.serialization.cbor/CborNegativeInt : kotlinx.serialization.cbor/CborInt<kotlin/Long> { // kotlinx.serialization.cbor/CborNegativeInt|null[0]
final object Companion { // kotlinx.serialization.cbor/CborNegativeInt.Companion|null[0]
211
-
final fun serializer(): kotlinx.serialization/KSerializer<kotlinx.serialization.cbor/CborNegativeInt> // kotlinx.serialization.cbor/CborNegativeInt.Companion.serializer|serializer(){}[0]
212
-
}
213
-
}
214
-
215
237
final class kotlinx.serialization.cbor/CborNull : kotlinx.serialization.cbor/CborPrimitive<kotlin/Unit> { // kotlinx.serialization.cbor/CborNull|null[0]
@@ -220,14 +242,6 @@ final class kotlinx.serialization.cbor/CborNull : kotlinx.serialization.cbor/Cbo
220
242
}
221
243
}
222
244
223
-
final class kotlinx.serialization.cbor/CborPositiveInt : kotlinx.serialization.cbor/CborInt<kotlin/ULong> { // kotlinx.serialization.cbor/CborPositiveInt|null[0]
final object Companion { // kotlinx.serialization.cbor/CborPositiveInt.Companion|null[0]
227
-
final fun serializer(): kotlinx.serialization/KSerializer<kotlinx.serialization.cbor/CborPositiveInt> // kotlinx.serialization.cbor/CborPositiveInt.Companion.serializer|serializer(){}[0]
228
-
}
229
-
}
230
-
231
245
final class kotlinx.serialization.cbor/CborString : kotlinx.serialization.cbor/CborPrimitive<kotlin/String> { // kotlinx.serialization.cbor/CborString|null[0]
@@ -236,15 +250,6 @@ final class kotlinx.serialization.cbor/CborString : kotlinx.serialization.cbor/C
236
250
}
237
251
}
238
252
239
-
sealed class <#A: kotlin/Any> kotlinx.serialization.cbor/CborInt : kotlinx.serialization.cbor/CborPrimitive<#A> { // kotlinx.serialization.cbor/CborInt|null[0]
240
-
final object Companion : kotlinx.serialization.internal/SerializerFactory { // kotlinx.serialization.cbor/CborInt.Companion|null[0]
241
-
final fun <#A2: kotlin/Any?> serializer(kotlinx.serialization/KSerializer<#A2>): kotlinx.serialization/KSerializer<kotlinx.serialization.cbor/CborInt<#A2>> // kotlinx.serialization.cbor/CborInt.Companion.serializer|serializer(kotlinx.serialization.KSerializer<0:0>){0§<kotlin.Any?>}[0]
242
-
final fun invoke(kotlin/Long, kotlin/ULongArray...): kotlinx.serialization.cbor/CborInt<*> // kotlinx.serialization.cbor/CborInt.Companion.invoke|invoke(kotlin.Long;kotlin.ULongArray...){}[0]
243
-
final fun invoke(kotlin/ULong, kotlin/ULongArray...): kotlinx.serialization.cbor/CborInt<kotlin/ULong> // kotlinx.serialization.cbor/CborInt.Companion.invoke|invoke(kotlin.ULong;kotlin.ULongArray...){}[0]
244
-
final fun serializer(kotlin/Array<out kotlinx.serialization/KSerializer<*>>...): kotlinx.serialization/KSerializer<*> // kotlinx.serialization.cbor/CborInt.Companion.serializer|serializer(kotlin.Array<out|kotlinx.serialization.KSerializer<*>>...){}[0]
245
-
}
246
-
}
247
-
248
253
sealed class <#A: kotlin/Any> kotlinx.serialization.cbor/CborPrimitive : kotlinx.serialization.cbor/CborElement { // kotlinx.serialization.cbor/CborPrimitive|null[0]
249
254
final val value // kotlinx.serialization.cbor/CborPrimitive.value|{}value[0]
250
255
final fun <get-value>(): #A // kotlinx.serialization.cbor/CborPrimitive.value.<get-value>|<get-value>(){}[0]
0 commit comments