polymorphic

inline fun <Base : Any> SerializersModuleBuilder.polymorphic(baseClass: KClass<Base>, baseSerializer: KSerializer<Base>? = null, builderAction: PolymorphicModuleBuilder<Base>.() -> Unit = {})(source)

Creates a builder to register subclasses of a given baseClass for polymorphic serialization. If baseSerializer is not null, registers it as a serializer for baseClass, which is useful if the base class is serializable itself. To register subclasses, PolymorphicModuleBuilder.subclass builder function can be used.

If a serializer already registered for the given KClass in the given scope, an IllegalArgumentException is thrown. To override registered serializers, combine built module with another using SerializersModule.overwriteWith.

See also