SDI/src/commonMain/kotlin/dev/inmo/sdi/utils/OptionalContextualIncluding.kt

20 lines
547 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
}
@InternalSerializationApi
inline fun <reified T : Any> SerializersModuleBuilder.optionalContextual(
kSerializer: KSerializer<T>
) = optionalContextual(T::class, kSerializer)