Hi, is it possible with kotlinx to deserialize an ...
# serialization
r
Hi, is it possible with kotlinx to deserialize an array with nested cbor encoded data items contained within a map? For example:
Copy code
text(10)
  "nameSpaces"
map(1)
  text(3)
    "key"
  array(10)
    encoded cbor data item, tag(24)
      bytes(82)
        ...
Got it working with a custom serializer:
Copy code
@Serializable
data class NetworkIssuerSigned(
    val nameSpaces: Map<String, NamespaceFields>
)

@Serializable(with = NamespaceFieldsSerializer::class)
data class NamespaceFields(
    val fields: List<LicenseField>
)

@Serializable
data class LicenseField(
    val elementIdentifier: String
)

object NamespaceFieldsSerializer : KSerializer<NamespaceFields> {
    override val descriptor: SerialDescriptor = ListSerializer(LicenseField.serializer()).descriptor

    override fun deserialize(decoder: Decoder): NamespaceFields {
        val items = decoder.decodeInt()

        val fields: List<LicenseField> = (0 until items).map {
            val length = decoder.decodeInt()
            LicenseField.serializer().deserialize(decoder)
        }

        return NamespaceFields(fields)
    }

    override fun serialize(encoder: Encoder, value: NamespaceFields) {
    }
}