0

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))

}
Waqas Tahir
  • 7,171
  • 5
  • 25
  • 47

0 Answers0