All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.com.harmony.kotlin.data.mapper.CBORObjectToByteArray.kt Maven / Gradle / Ivy

package com.harmony.kotlin.data.mapper

import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.KSerializer
import kotlinx.serialization.builtins.ListSerializer
import kotlinx.serialization.cbor.Cbor

@ExperimentalSerializationApi
class CBORObjectToByteArray(private val cbor: Cbor, private val serializer: KSerializer) : Mapper {
  override fun map(from: T): ByteArray = cbor.encodeToByteArray(serializer, from)
}

@ExperimentalSerializationApi
class CBORListObjectToByteArray(private val cbor: Cbor, private val serializer: KSerializer) : Mapper, ByteArray> {
  override fun map(from: List): ByteArray {
    val ls = ListSerializer(serializer)
    return cbor.encodeToByteArray(ls, from)
  }
}

@ExperimentalSerializationApi
class CBORByteArrayToObject(private val cbor: Cbor, private val serializer: KSerializer) : Mapper {
  override fun map(from: ByteArray): T = cbor.decodeFromByteArray(serializer, from)
}

@ExperimentalSerializationApi
class CBORByteArrayToListObject(private val cbor: Cbor, private val serializer: KSerializer) : Mapper> {
  override fun map(from: ByteArray): List {
    val ls = ListSerializer(serializer)
    return cbor.decodeFromByteArray(ls, from)
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy