File tree Expand file tree Collapse file tree 4 files changed +16
-2
lines changed
surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/serializer
java/datetime/zone/offset Expand file tree Collapse file tree 4 files changed +16
-2
lines changed Original file line number Diff line number Diff line change @@ -19,6 +19,7 @@ import dev.slne.surf.surfapi.core.api.serializer.java.datetime.datetime.offset.O
1919import dev.slne.surf.surfapi.core.api.serializer.java.datetime.datetime.zdt.ZonedDateTimeCodec
2020import dev.slne.surf.surfapi.core.api.serializer.java.datetime.time.local.LocalTimeCodec
2121import dev.slne.surf.surfapi.core.api.serializer.java.datetime.zone.id.ZoneIdCodec
22+ import dev.slne.surf.surfapi.core.api.serializer.java.datetime.zone.offset.ZoneOffsetCodec
2223import dev.slne.surf.surfapi.core.api.serializer.java.uri.URICodec
2324import dev.slne.surf.surfapi.core.api.serializer.java.uuid.JavaUUIDCodec
2425import dev.slne.surf.surfapi.core.api.serializer.spongepowered.math.matrix.m2d.SpongeMatrix2dCodec
@@ -103,5 +104,6 @@ object SurfCodecs {
103104 val ZONED_DATE_TIME = ZonedDateTimeCodec .CODEC
104105 val LOCAL_TIME = LocalTimeCodec .CODEC
105106 val ZONE_ID = ZoneIdCodec .CODEC
107+ val ZONE_OFFSET = ZoneOffsetCodec .CODEC
106108 // endregion
107109}
Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ import dev.slne.surf.surfapi.core.api.serializer.java.datetime.datetime.offset.O
2020import dev.slne.surf.surfapi.core.api.serializer.java.datetime.datetime.zdt.ZonedDateTimeSerializer
2121import dev.slne.surf.surfapi.core.api.serializer.java.datetime.time.local.LocalTimeSerializer
2222import dev.slne.surf.surfapi.core.api.serializer.java.datetime.zone.id.ZonedIdSerializer
23+ import dev.slne.surf.surfapi.core.api.serializer.java.datetime.zone.offset.ZoneOffsetSerializer
2324import dev.slne.surf.surfapi.core.api.serializer.java.uri.URISerializer
2425import dev.slne.surf.surfapi.core.api.serializer.java.uuid.JavaUUIDSerializer
2526import dev.slne.surf.surfapi.core.api.serializer.spongepowered.math.matrix.m2d.SpongeMatrix2dSerializer
@@ -108,6 +109,7 @@ object SurfSerializerModule {
108109 contextual(ZonedDateTimeSerializer )
109110 contextual(LocalTimeSerializer )
110111 contextual(ZonedIdSerializer )
112+ contextual(ZoneOffsetSerializer )
111113 }
112114
113115 val all = SerializersModule {
Original file line number Diff line number Diff line change 11package dev.slne.surf.surfapi.core.api.serializer.java.datetime.zone.offset
22
33import com.mojang.serialization.Codec
4+ import com.mojang.serialization.DataResult
5+ import java.time.DateTimeException
46import java.time.ZoneOffset
57
68object ZoneOffsetCodec {
7- val CODEC : Codec <ZoneOffset > = Codec .STRING .xmap({ ZoneOffset .of(it) }, { it.id })
9+ val CODEC : Codec <ZoneOffset > = Codec .STRING
10+ .comapFlatMap({ id ->
11+ try {
12+ DataResult .success(ZoneOffset .of(id))
13+ } catch (e: DateTimeException ) {
14+ DataResult .error { " Invalid ZoneOffset $id : ${e.message} " }
15+ }
16+
17+ }, ZoneOffset ::getId)
818}
Original file line number Diff line number Diff line change @@ -23,6 +23,6 @@ object ZoneOffsetSerializer : KSerializer<ZoneOffset> {
2323 encoder.encodeString(value.id)
2424 }
2525
26- override fun deserialize (decoder : Decoder ) =
26+ override fun deserialize (decoder : Decoder ): ZoneOffset =
2727 ZoneOffset .of(decoder.decodeString())
2828}
You can’t perform that action at this time.
0 commit comments