@@ -46,7 +46,7 @@ import kotlinx.serialization.*
4646 *
4747 * Values: { {#allowableValues} }{ {#enumVars} }{ {&name} }{ {^-last} },{ {/-last} }{ {/enumVars} }{ {/allowableValues} }
4848 */
49- { {#multiplatform} }@Serializable{ {/multiplatform} }{ {#kotlinx_serialization} }@Serializable{ {#enumUnknownDefaultCase} }(with = { {classname} }Serializer::class){ {/enumUnknownDefaultCase} }{ {^enumUnknownDefaultCase} }{ {^isString} }(with = { {classname} }Serializer::class){ {/isString} }{ {/enumUnknownDefaultCase} }{ {/kotlinx_serialization} }
49+ { {#multiplatform} }@Serializable{ {^isString } }(with = { {classname } }Serializer::class) { {/isString } } { { /multiplatform} }{ {#kotlinx_serialization} }@Serializable{ {#enumUnknownDefaultCase} }(with = { {classname} }Serializer::class){ {/enumUnknownDefaultCase} }{ {^enumUnknownDefaultCase} }{ {^isString} }(with = { {classname} }Serializer::class){ {/isString} }{ {/enumUnknownDefaultCase} }{ {/kotlinx_serialization} }
5050{ {^multiplatform} }
5151{ {#moshi} }
5252@JsonClass(generateAdapter = false)
@@ -71,7 +71,9 @@ import kotlinx.serialization.*
7171 { {/kotlinx_serialization} }
7272 { {/multiplatform} }
7373 { {#multiplatform} }
74+ { {#isString} }
7475 @SerialName(value = { {#lambda.doublequote} }{ {{value} }}{ {/lambda.doublequote} })
76+ { {/isString} }
7577 { {/multiplatform} }
7678 { {#isArray} }
7779 { {#isList} }
@@ -146,4 +148,19 @@ internal object {{classname}}Serializer : KSerializer<{{classname}}> {
146148 }
147149}
148150{ {/isString} }{ {/enumUnknownDefaultCase} }
149- { {/kotlinx_serialization} }
151+ { {/kotlinx_serialization} }
152+ { {#multiplatform} }{ {^isString} }
153+ internal object { {classname} }Serializer : KSerializer<{ {classname} }> {
154+ override val descriptor = {{dataType} }.serializer().descriptor
155+
156+ override fun deserialize(decoder: Decoder): { {classname} } {
157+ val value = decoder.decodeSerializableValue({{{dataType} }}.serializer())
158+ return { {classname} }.values().firstOrNull { it.value == value }
159+ ?: throw IllegalArgumentException("Unknown enum value: $value")
160+ }
161+
162+ override fun serialize(encoder: Encoder, value: { {classname} }) {
163+ encoder.encodeSerializableValue({{{dataType} }}.serializer(), value.value)
164+ }
165+ }
166+ { {/isString} }{ {/multiplatform} }
0 commit comments