Skip to content

Instantly share code, notes, and snippets.

@mrenouf
Last active December 8, 2025 04:03
Show Gist options
  • Select an option

  • Save mrenouf/372504264704aa9f2ec6d0b0cc43c0ea to your computer and use it in GitHub Desktop.

Select an option

Save mrenouf/372504264704aa9f2ec6d0b0cc43c0ea to your computer and use it in GitHub Desktop.
KSerializer for Int as Hex string
import kotlinx.serialization.KSerializer
import kotlinx.serialization.Serializable
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
class IntHexSerializer : KSerializer<Int> {
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("IntHex", PrimitiveKind.STRING)
override fun serialize(encoder: Encoder, value: Int) {
encoder.encodeString("%08X".format(value))
}
override fun deserialize(decoder: Decoder): Int {
return decoder.decodeString().toInt(16)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment