I am using kotinx.serialization library And Getting This error everywhere I specified a custom serializer using @Serializable annotation !
Error :
error: incompatible types: Class<MutableStateSerializer> cannot be converted to Class<? extends KSerializer<?>>
@kotlinx.serialization.Serializable(with = com.wakaztahir.timeline.utils.serializers.MutableStateSerializer.class)
Use :
@Serializable(with = MutableStateSerializer::class)
var items = mutableStateOf(listOf<ListItem>())
Serializer :
class MutableStateSerializer<T>(private val dataSerializer: KSerializer<T>) : KSerializer<MutableState<T>> {
override val descriptor: SerialDescriptor = dataSerializer.descriptor
override fun serialize(encoder: Encoder, value: MutableState<T>) =
dataSerializer.serialize(encoder, value.value)
override fun deserialize(decoder: Decoder): MutableState<T> =
mutableStateOf(dataSerializer.deserialize(decoder))
}