RayeW47
10/23/2020, 11:15 AMInt
and a String
and output a generic class?
How would I do something that essentially looks like this but actually works? Because this currently does NOT work for me
open class FlagSerDes<T>(
val decodeFromString: (String) -> T,
val getEncodeString: (T) -> String
): KSerializer<T> {
override fun deserialize(decoder: Decoder): T = decodeFromString(decoder.decodeString())
override fun serialize(encoder: Encoder, value: T) {
encoder.encodeString(getEncodeString(value))
}
}
class Flag1(val flags: Int) {
@Serializer(forClass = Flag1::class)
companion object: FlagSerDes<Flag1>( { Flag1(it.toInt()) }, { it.flags.toString() }
}
class Flag2(val flags: Int) {
@serializer(forClass = Flag2::class)
companion object: FlagSerDes<Flag2>( { Flag2(it.toInt()) }, { it.flags.toString() }
}