package Ġde . pl ast ick arma . kotlin x . serialization . format . ion . encode Ċ Ċ import Ġcom . amazon . ion . Ion Writer Ċ import Ġkotlinx . serialization . Experimental Serialization Api Ċ import Ġkotlinx . serialization . Serialization Strategy Ċ import Ġkotlinx . serialization . descriptors . Serial Descriptor Ċ import Ġkotlinx . serialization . encoding . Abstract Encoder Ċ import Ġkotlinx . serialization . encoding . Encoder Ċ import Ġkotlinx . serialization . modules . Serial izers Module Ċ Ċ /** Ċ Ġ* ĠSpecial ized Ġencoder Ġto Ġwrite Ġa Ġmap Ġin ĠI ON Ġformat . Ċ Ġ*/ Ċ @ Experimental Serialization Api Ċ class ĠMap Ion Encoder ( ĊĠĠĠ Ġoverride Ġval Ġserializers Module : ĠSerial izers Module , ĊĠĠĠ Ġprivate Ġval Ġion : ĠIon Writer , ĊĠĠĠ Ġprivate Ġval Ġbase Encoder : ĠEncoder Ċ ) Ġ: ĠAbstract Encoder () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġis Key : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġencode Serializable Value ( serializer : ĠSerialization Strategy < T >, Ġvalue : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Key Ġ= Ġif Ġ( is Key ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġion . set FieldName ( value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . serialize ( base Encoder , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġend Structure ( descriptor : ĠSerial Descriptor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġion . step Out () ĊĠĠĠ Ġ} Ċ } Ċ