package moe.nea.archenemy.util import kotlinx.serialization.KSerializer import kotlinx.serialization.descriptors.PrimitiveKind import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor import kotlinx.serialization.descriptors.SerialDescriptor import kotlinx.serialization.encoding.Decoder import kotlinx.serialization.encoding.Encoder import java.time.Instant import java.time.format.DateTimeFormatter object InstantSerializer : KSerializer { override val descriptor: SerialDescriptor get() = PrimitiveSerialDescriptor("Instant", PrimitiveKind.STRING) val format: DateTimeFormatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME override fun deserialize(decoder: Decoder): Instant { return format.parse(decoder.decodeString(), Instant::from) as Instant } override fun serialize(encoder: Encoder, value: Instant) { TODO("Not yet implemented") } }