All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.dk.cachet.carp.common.infrastructure.serialization.DurationSerializer.kt Maven / Gradle / Ivy

package dk.cachet.carp.common.infrastructure.serialization

import kotlinx.serialization.KSerializer
import kotlin.time.Duration


/**
 * Serializes [Duration] by converting it to microseconds.
 *
 * TODO: Once Kotlin 1.5.30 is released, it will be easy to serialize this as a String rather than Long:
 *   https://github.com/cph-cachet/carp.core-kotlin/issues/287
 */
object DurationSerializer : KSerializer
    by createCarpLongPrimitiveSerializer(
        {
            if ( Duration.INFINITE.inWholeMicroseconds == it ) Duration.INFINITE
            else Duration.microseconds( it )
        },
        { it.inWholeMicroseconds }
    )




© 2015 - 2025 Weber Informatics LLC | Privacy Policy