CborEncoder

interface CborEncoder(source)

This interface provides access to the current Cbor instance, so it can be properly taken into account in a custom serializer. For example, a custom serializer can output a byte array using Cbor.encodeToByteArray and embed resulting data into the output, as required, by some COSE structures. The actual CBOR Encoder used during serialization implements this interface, so it is possible to cast the encoder passed to KSerializer.serialize to CborEncoder when implementing such low-level serializers, to access configuration properties:

override fun serialize(encoder: Encoder, value: AlgorithmParameters) {
if (encoder is CborEncoder) {
val useDefiniteLengthEncoding = (encoder as CborEncoder).cbor.configuration.writeDefiniteLengths
// Do CBOR-specific low-level stuff
}
}

Properties

Link copied to clipboard
abstract val cbor: Cbor

Exposes the current Cbor instance and all its configuration flags. Useful for low-level custom serializers.