class SerializersModuleBuilder : SerialModuleCollector
A builder class for SerializersModule DSL. To create an instance of builder, use SerializersModule factory function.
(common, js, jvm, native)
contextual |
Adds serializer associated with given kClass for contextual serialization. Throws SerializationException if a module already has serializer associated with a kClass. To overwrite an already registered serializer, SerialModule.overwriteWith can be used. fun <T : Any> contextual(kClass: KClass<T>, serializer: KSerializer<T>): Unit
A reified version of fun <T : Any> contextual(): Unit |
(common, js, jvm, native)
defaultPolymorphic |
Accept a default serializer provider, associated with the baseClass for polymorphic serialization. fun <Base : Any> defaultPolymorphic(baseClass: KClass<Base>, defaultSerializerProvider: (className: String) -> DeserializationStrategy<out Base>?): Unit |
(common, js, jvm, native)
include |
Copies contents of other module into the current builder. fun include(other: SerialModule): Unit |
(common, js, jvm, native)
polymorphic |
Adds serializer associated with given actualClass in the scope of baseClass for polymorphic serialization. Throws SerializationException if a module already has serializer associated with a actualClass. To overwrite an already registered serializer, SerialModule.overwriteWith can be used. fun <Base : Any, Sub : Base> polymorphic(baseClass: KClass<Base>, actualClass: KClass<Sub>, actualSerializer: KSerializer<Sub>): Unit
Creates a builder to register all subclasses of a given baseClass for polymorphic serialization. If baseSerializer is not null, registers it as a serializer for baseClass (which is useful if base class is serializable). To add subclasses, use PolymorphicModuleBuilder.subclass or PolymorphicModuleBuilder.with. fun <Base : Any> polymorphic(baseClass: KClass<Base>, baseSerializer: KSerializer<Base>? = null, buildAction: PolymorphicModuleBuilder<Base>.() -> Unit = {}): Unit fun <Base : Any> polymorphic(baseSerializer: KSerializer<Base>? = null, buildAction: PolymorphicModuleBuilder<Base>.() -> Unit = {}): Unit
Creates a builder to register all serializable subclasses for polymorphic serialization for multiple base classes. This is useful when you have more two or more super classes in a large hierarchy, e.g.: fun polymorphic(baseClass: KClass<*>, vararg baseClasses: KClass<*>, buildAction: PolymorphicModuleBuilder<Any>.() -> Unit = {}): Unit |