diff options
author | Vsevolod Tolstopyatov <qwwdfsad@gmail.com> | 2020-07-08 18:07:58 +0300 |
---|---|---|
committer | Vsevolod Tolstopyatov <qwwdfsad@gmail.com> | 2020-07-12 12:50:57 -0700 |
commit | e772f37367c252e59ab08b0b4c7613f0d8053d9d (patch) | |
tree | d14c63e8882412717cbb688a6637db71b5720aa0 /formats/cbor | |
parent | 5a991a6d6e768e678eefba159796aef0a4a8b396 (diff) | |
download | kotlinx.serialization-e772f37367c252e59ab08b0b4c7613f0d8053d9d.tar.gz |
[API stabilization] Encoder and Decoder
* Deprecate potentially dangerous extensions
* Rename context to serializersModule to align with modules rework
* Remove decode/encodeUnit
* Rename READ_DONE to DECODE_DONE
Diffstat (limited to 'formats/cbor')
-rw-r--r-- | formats/cbor/commonMain/src/kotlinx/serialization/cbor/Cbor.kt | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/formats/cbor/commonMain/src/kotlinx/serialization/cbor/Cbor.kt b/formats/cbor/commonMain/src/kotlinx/serialization/cbor/Cbor.kt index ccb0c1c3..291919e0 100644 --- a/formats/cbor/commonMain/src/kotlinx/serialization/cbor/Cbor.kt +++ b/formats/cbor/commonMain/src/kotlinx/serialization/cbor/Cbor.kt @@ -5,7 +5,8 @@ package kotlinx.serialization.cbor import kotlinx.serialization.* -import kotlinx.serialization.CompositeDecoder.Companion.READ_DONE +import kotlinx.serialization.CompositeDecoder.Companion.DECODE_DONE +import kotlinx.serialization.builtins.* import kotlinx.serialization.cbor.internal.ByteArrayInput import kotlinx.serialization.cbor.internal.ByteArrayOutput import kotlinx.serialization.encoding.* @@ -45,7 +46,7 @@ public class Cbor( // Writes class as map [fieldName, fieldValue] private open inner class CborWriter(val encoder: CborEncoder) : AbstractEncoder() { - override val context: SerialModule + override val serializersModule: SerialModule get() = this@Cbor.context override fun shouldEncodeElementDefault(descriptor: SerialDescriptor, index: Int): Boolean = encodeDefaults @@ -169,7 +170,7 @@ public class Cbor( override fun skipBeginToken() = setSize(decoder.startArray()) - override fun decodeElementIndex(descriptor: SerialDescriptor) = if (!finiteMode && decoder.isEnd() || (finiteMode && ind >= size)) READ_DONE else ind++ + override fun decodeElementIndex(descriptor: SerialDescriptor) = if (!finiteMode && decoder.isEnd() || (finiteMode && ind >= size)) DECODE_DONE else ind++ } private open inner class CborReader(val decoder: CborDecoder) : AbstractDecoder() { @@ -187,7 +188,7 @@ public class Cbor( } } - override val context: SerialModule + override val serializersModule: SerialModule get() = this@Cbor.context protected open fun skipBeginToken() = setSize(decoder.startMap()) @@ -207,7 +208,7 @@ public class Cbor( } override fun decodeElementIndex(descriptor: SerialDescriptor): Int { - if (!finiteMode && decoder.isEnd() || (finiteMode && readProperties >= size)) return READ_DONE + if (!finiteMode && decoder.isEnd() || (finiteMode && readProperties >= size)) return DECODE_DONE val elemName = decoder.nextString() readProperties++ return descriptor.getElementIndexOrThrow(elemName) @@ -396,13 +397,13 @@ public class Cbor( override fun <T> encodeToByteArray(serializer: SerializationStrategy<T>, value: T): ByteArray { val output = ByteArrayOutput() val dumper = CborWriter(CborEncoder(output)) - dumper.encode(serializer, value) + dumper.encodeSerializableValue(serializer, value) return output.toByteArray() } override fun <T> decodeFromByteArray(deserializer: DeserializationStrategy<T>, bytes: ByteArray): T { val stream = ByteArrayInput(bytes) val reader = CborReader(CborDecoder(stream)) - return reader.decode(deserializer) + return reader.decodeSerializableValue(deserializer) } } |