
strategy.KotlinxEnumClassStrategy.kt Maven / Gradle / Ivy
package io.toolisticon.kotlin.avro.serialization.strategy
import io.toolisticon.kotlin.avro.serialization.AvroKotlinSerialization
import io.toolisticon.kotlin.avro.serialization.isKotlinxEnumClass
import org.apache.avro.generic.GenericRecord
import kotlin.reflect.KClass
class KotlinxEnumClassStrategy(
private val avroKotlinSerialization: AvroKotlinSerialization
) : GenericRecordSerializationStrategy {
override fun test(serializedType: KClass<*>): Boolean = serializedType.isKotlinxEnumClass()
@Suppress("UNCHECKED_CAST")
override fun deserialize(serializedType: KClass<*>, data: GenericRecord): T {
return avroKotlinSerialization.avro4kGenericRecordCodec.decoder(serializedType).decode(data) as T
}
override fun serialize(data: T): GenericRecord {
return avroKotlinSerialization.avro4kGenericRecordCodec.encoder().encode(data)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy