What logic is used to create class
and protocol
names when Kotlin code is exported to Objective-C? Additionally, where can I find detailed information about this process?
Where code like:
package kotlinx.serialization.modules
public interface SerializersModuleCollector {...}
from: core/commonMain/src/kotlinx/serialization/modules/SerializersModuleCollector.kt
Is transformed into:
Kotlinx_serialization_coreSerializersModuleCollector
Kotlinx_serialization_coreKSerializer
Kotlinx_serialization_coreSerializationStrategy
...
Full Example:
public protocol Kotlinx_serialization_coreSerializersModuleCollector {
func contextual(kClass: any KotlinKClass, provider: @escaping ([any Kotlinx_serialization_coreKSerializer]) -> any Kotlinx_serialization_coreKSerializer)
func contextual(kClass: any KotlinKClass, serializer: any Kotlinx_serialization_coreKSerializer)
func polymorphic(baseClass: any KotlinKClass, actualClass: any KotlinKClass, actualSerializer: any Kotlinx_serialization_coreKSerializer)
@available(*, deprecated, message: "Deprecated in favor of function with more precise name: polymorphicDefaultDeserializer")
func polymorphicDefault(baseClass: any KotlinKClass, defaultDeserializerProvider: @escaping (String?) -> (any Kotlinx_serialization_coreDeserializationStrategy)?)
func polymorphicDefaultDeserializer(baseClass: any KotlinKClass, defaultDeserializerProvider: @escaping (String?) -> (any Kotlinx_serialization_coreDeserializationStrategy)?)
func polymorphicDefaultSerializer(baseClass: any KotlinKClass, defaultSerializerProvider: @escaping (Any) -> (any Kotlinx_serialization_coreSerializationStrategy)?)
}