class ClassSerialDescriptorBuilder

Builder for SerialDescriptor for user-defined serializers.

Both explicit builder functions and implicit (using reified type-parameters) are present and are equivalent. For example, element<Int?>("nullableIntField") is indistinguishable from element("nullableIntField", IntSerializer.descriptor.nullable) and from element("nullableIntField", descriptor<Int?>).

Please refer to SerialDescriptor builder function for a complete example.


Link copied to clipboard
fun element(    elementName: String,     descriptor: SerialDescriptor,     annotations: List<Annotation> = emptyList(),     isOptional: Boolean = false)

Add an element with a given name, descriptor, type annotations and optionality the resulting descriptor.


Link copied to clipboard
var annotations: List<Annotation>

Serial annotations on a target type.

Link copied to clipboard
var isNullable: Boolean = false

Indicates that serializer associated with the current serial descriptor support nullable types, meaning that it should declare nullable type in its KSerializer type parameter and handle nulls during encoding and decoding.

Link copied to clipboard
val serialName: String


Link copied to clipboard
inline fun <T> ClassSerialDescriptorBuilder.element(    elementName: String,     annotations: List<Annotation> = emptyList(),     isOptional: Boolean = false)

A reified version of element function that extract descriptor using serializer<T>().descriptor call with all the restrictions of serializer<T>().descriptor.