Skip to content

Commit 1fbf819

Browse files
Leesin0222e5l
andauthored
Change ErrorCodeSerializer descriptor kind (#54)
* Change descriptor to INT for correct serialization * Remove @OptIn(ExperimentalSerializationApi::class) bacause The opt-in annotation is redundant: no matching experimental API is used --------- Co-authored-by: Leonid Stashevsky <e5l@users.noreply.github.com>
1 parent be4f9c3 commit 1fbf819

File tree

1 file changed

+4
-8
lines changed
  • src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk

1 file changed

+4
-8
lines changed

src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types.util.kt

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package io.modelcontextprotocol.kotlin.sdk
33
import io.github.oshai.kotlinlogging.KotlinLogging
44
import io.modelcontextprotocol.kotlin.sdk.LoggingMessageNotification.SetLevelRequest
55
import kotlinx.serialization.DeserializationStrategy
6-
import kotlinx.serialization.ExperimentalSerializationApi
76
import kotlinx.serialization.KSerializer
87
import kotlinx.serialization.descriptors.PrimitiveKind
98
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
@@ -17,25 +16,23 @@ private val logger = KotlinLogging.logger {}
1716

1817
internal object ErrorCodeSerializer : KSerializer<ErrorCode> {
1918
override val descriptor: SerialDescriptor =
20-
PrimitiveSerialDescriptor("io.modelcontextprotocol.kotlin.sdk.ErrorCode", PrimitiveKind.STRING)
19+
PrimitiveSerialDescriptor("io.modelcontextprotocol.kotlin.sdk.ErrorCode", PrimitiveKind.INT)
2120

22-
@OptIn(ExperimentalSerializationApi::class)
2321
override fun serialize(encoder: Encoder, value: ErrorCode) {
2422
encoder.encodeInt(value.code)
2523
}
2624

2725
override fun deserialize(decoder: Decoder): ErrorCode {
28-
val decodedString = decoder.decodeInt()
29-
return ErrorCode.Defined.entries.firstOrNull { it.code == decodedString }
30-
?: ErrorCode.Unknown(decodedString)
26+
val decodedInt = decoder.decodeInt()
27+
return ErrorCode.Defined.entries.firstOrNull { it.code == decodedInt }
28+
?: ErrorCode.Unknown(decodedInt)
3129
}
3230
}
3331

3432
internal object RequestMethodSerializer : KSerializer<Method> {
3533
override val descriptor: SerialDescriptor =
3634
PrimitiveSerialDescriptor("io.modelcontextprotocol.kotlin.sdk.Method", PrimitiveKind.STRING)
3735

38-
@OptIn(ExperimentalSerializationApi::class)
3936
override fun serialize(encoder: Encoder, value: Method) {
4037
encoder.encodeString(value.value)
4138
}
@@ -51,7 +48,6 @@ internal object StopReasonSerializer : KSerializer<StopReason> {
5148
override val descriptor: SerialDescriptor =
5249
PrimitiveSerialDescriptor("io.modelcontextprotocol.kotlin.sdk.StopReason", PrimitiveKind.STRING)
5350

54-
@OptIn(ExperimentalSerializationApi::class)
5551
override fun serialize(encoder: Encoder, value: StopReason) {
5652
encoder.encodeString(value.value)
5753
}

0 commit comments

Comments
 (0)