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.
(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 |