kotlinx-serialization / kotlinx.serialization.modules / PolymorphicModuleBuilder

PolymorphicModuleBuilder

(common, js, jvm, native) class PolymorphicModuleBuilder<Base : Any>

A builder which registers all its content for polymorphic serialization in the scope of baseClass. If baseSerializer is present, registers it as a serializer for baseClass (which will be used if base class is serializable). Subclasses with its serializers can be added via subclass or with.

To obtain an instance of this builder, use SerializersModuleBuilder.polymorphic DSL function.

Functions

(common, js, jvm, native)

addSubclass

Adds a subclass to the resulting module under the initial baseClass.

fun <T : Base> addSubclass(subclass: KClass<T>, serializer: KSerializer<T>): Unit
(common, js, jvm, native)

default

Registers serializer provider that will be invoked if no polymorphic serializer is present. defaultSerializerProvider can be stateful and lookup a serializer for the missing type dynamically.

fun default(defaultSerializerProvider: (className: String) -> DeserializationStrategy<out Base>?): Unit
(common, js, jvm, native)

subclass

fun <T : Base> subclass(serializer: KSerializer<T>): Unit
fun <T : Base> subclass(): Unit
(common, js, jvm, native)

with

infix fun <T : Base> KClass<T>.with(serializer: KSerializer<T>): Unit