encodeInline

abstract fun encodeInline(inlineDescriptor: SerialDescriptor): Encoder

Returns Encoder for encoding an underlying type of an inline class. inlineDescriptor describes a serializable inline class.

Namely, for the @Serializable inline class MyInt(val my: Int), the following sequence is used:

thisEncoder.encodeInline(MyInt.serializer().descriptor).encodeInt(my)

Current encoder may return any other instance of Encoder class, depending on the provided inlineDescriptor. For example, when this function is called on Json encoder with UInt.serializer().descriptor, the returned encoder is able to encode unsigned integers.

Note that this function returns Encoder instead of CompositeEncoder because inline classes always have one property. Calling Encoder.beginStructure on returned instance leads to an undefined behavior.