xyz.cssxsh.mirai.admin.cron.DurationSerializer.kt Maven / Gradle / Ivy
The newest version!
package xyz.cssxsh.mirai.admin.cron
import kotlinx.serialization.*
import kotlinx.serialization.descriptors.*
import kotlinx.serialization.encoding.*
import java.time.*
/**
* Duration 序列化
*/
public object DurationSerializer : KSerializer {
override val descriptor: SerialDescriptor =
PrimitiveSerialDescriptor(this::class.qualifiedName!!, PrimitiveKind.STRING)
override fun serialize(encoder: Encoder, value: Duration) {
encoder.encodeString(value.toString())
}
override fun deserialize(decoder: Decoder): Duration {
return Duration.parse(decoder.decodeString())
}
}