package Ġsp ready . spread Ċ Ċ import Ġkotlinx . serialization . K Serializer Ċ import Ġkotlinx . serialization . Serialization Exception Ċ import Ġkotlinx . serialization . descriptors . Primitive Kind Ċ import Ġkotlinx . serialization . descriptors . Primitive Serial Descriptor Ċ import Ġkotlinx . serialization . descriptors . Serial Descriptor Ċ import Ġkotlinx . serialization . encoding . Decoder Ċ import Ġkotlinx . serialization . encoding . Encoder Ċ import Ġsp ready . lisp . sex pr . Cell Ċ Ċ /** Ċ Ġ* ĠSerial izes Ġcells Ġas Ġit 's Ġstring Ġrepresentation Ċ Ġ*/ Ċ object ĠCell Serializer Ġ: ĠK Serializer < Cell > Ġ{ ĊĠĠĠ Ġprivate Ġval Ġcell Regex Ġ= ĠRegex (""" (\ d +)\ . (\ d +) """) ĊĊĠĠĠ Ġoverride Ġval Ġdescriptor : ĠSerial Descriptor ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠPrimitive Serial Descriptor (" Cell ", ĠPrimitive Kind . STRING ) ĊĊĠĠĠ Ġoverride Ġfun Ġserialize ( encoder : ĠEncoder , Ġvalue : ĠCell ) Ġ{ ĊĠĠĠĠĠĠĠ Ġencoder . encode String ("${ value . row }.${ value . col }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( decoder : ĠDecoder ): ĠCell Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġdecoder . decode String () ĊĊĠĠĠĠĠĠĠ Ġval Ġ( row , Ġcol ) Ġ= Ġcell Regex . match Ent ire ( input )?. de structured ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠSerialization Exception (" Can 't Ġparse ĠCell !") ĊĊĠĠĠĠĠĠĠ Ġreturn ĠCell ( row . toInt (), Ġcol . toInt ()) ĊĠĠĠ Ġ} Ċ } Ċ