SDI/src/commonMain/kotlin/dev/inmo/sdi/utils/OptionalContextualIncluding.kt
2021-02-19 19:30:22 +06:00

18 lines
468 B
Kotlin

package dev.inmo.sdi.utils
import kotlinx.serialization.*
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: SerializationException) {
false
} catch (e: IllegalArgumentException) { // can be a SerializerAlreadyRegisteredException
false
}