mirror of
https://github.com/InsanusMokrassar/SDI.git
synced 2024-06-01 23:45:12 +00:00
21 lines
637 B
Kotlin
21 lines
637 B
Kotlin
package com.insanusmokrassar.sdi.utils
|
|
|
|
import kotlinx.serialization.InternalSerializationApi
|
|
import kotlinx.serialization.KSerializer
|
|
import kotlinx.serialization.modules.*
|
|
import kotlin.reflect.KClass
|
|
|
|
@InternalSerializationApi
|
|
fun <T : Any> SerializersModuleBuilder.optionalContextual(
|
|
kClass: KClass<T>, kSerializer: KSerializer<T>
|
|
) = try {
|
|
contextual(kClass, kSerializer)
|
|
true
|
|
} catch (e: SerializerAlreadyRegisteredException) {
|
|
false
|
|
}
|
|
|
|
@InternalSerializationApi
|
|
inline fun <reified T : Any> SerializersModuleBuilder.optionalContextual(
|
|
kSerializer: KSerializer<T>
|
|
) = optionalContextual(T::class, kSerializer) |