package Ġkotlinx . serialization Ċ Ċ import Ġkotlinx . serialization . context . get OrDefault Ċ import Ġkotlinx . serialization . internal . Hex Converter ĊĊ Ċ /** Ċ Ġ* ĠThis Ġannotation Ġmarks Ġdeclaration Ġwhich Ġtry Ġto Ġobtain Ġserializer Ġimplicitly Ċ Ġ* Ġusing Ġreflection , Ġe . g . Ġfrom ĠK Class Ġor Ġinstance Ġitself . Ċ Ġ* Ċ Ġ* ĠThis Ġapproach Ġis Ġdis cour aged Ġin Ġgeneral Ġbecause Ġit Ġhas Ġseveral Ġdraw back s , Ġincluding : Ċ Ġ* Ġ- ĠReflection Ġis Ġnot Ġavailable Ġon ĠKotlin / Native Ġand Ġis Ġvery Ġlimited Ġon ĠKotlin / JS Ċ Ġ* Ġ- ĠReflection Ġwon 't Ġinfer Ġcorrect Ġserializers Ġfor Ġgeneric Ġclasses , Ġlike Ġcollections Ċ Ġ* Ġ- ĠSerial Context Ġmay Ġnot Ġbe Ġavailable , Ġsince Ġit Ġis Ġbound Ġto Ġparticular Ġformat , Ġnot Ġserializer Ċ Ġ* Ġ- ĠSuch Ġreflection Ġcalls Ġare Ġusually Ġslow Ċ Ġ* Ċ Ġ* ĠIt 's Ġalways Ġbetter Ġto Ġspecify Ġserializer Ġexplicitly , Ġusing Ġgenerated Ġ`. serializer ()` Ċ Ġ* Ġfunction Ġon Ġserial izable Ġclass ' Ġcompanion . Ċ Ġ*/ Ċ Ċ @ Experimental Ċ annotation Ġclass ĠImp licit Reflection Serializer Ċ Ċ @ Implicit Reflection Serializer Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > ĠBinary Format . dump ( obj : ĠT ): ĠByteArray Ġ= Ġdump ( context . get OrDefault ( T :: class ), Ġobj ) Ċ @ Implicit Reflection Serializer Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > ĠBinary Format . dumps ( obj : ĠT ): ĠString Ġ= ĠHex Converter . print Hex Binary ( dump ( obj ), Ġlower Case Ġ= Ġtrue ) Ċ Ċ @ Implicit Reflection Serializer Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > ĠBinary Format . load ( raw : ĠByteArray ): ĠT Ġ= Ġload ( context . get OrDefault ( T :: class ), Ġraw ) Ċ @ Implicit Reflection Serializer Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > ĠBinary Format . loads ( hex : ĠString ): ĠT Ġ= Ġload ( Hex Converter . parse Hex Binary ( hex )) ĊĊ Ċ @ Implicit Reflection Serializer Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > ĠString Format . stringify ( obj : ĠT ): ĠString Ġ= Ġstringify ( context . get OrDefault ( T :: class ), Ġobj ) Ċ @ Implicit Reflection Serializer Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > ĠString Format . stringify ( objects : ĠList < T >): ĠString Ġ= Ġstringify ( context . get OrDefault ( T :: class ). list , Ġobjects ) Ċ @ Implicit Reflection Serializer Ċ inline Ġfun Ġ< re ified ĠK Ġ: ĠAny , Ġre ified ĠV : ĠAny > ĠString Format . stringify ( map : ĠMap < K , ĠV >): ĠString ĊĠĠĠĠĠĠĠ Ġ= Ġstringify (( context . get OrDefault ( K :: class ) Ġto Ġcontext . get OrDefault ( V :: class )). map , Ġmap ) Ċ Ċ @ Implicit Reflection Serializer Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > ĠString Format . parse ( str : ĠString ): ĠT Ġ= Ġparse ( context . get OrDefault ( T :: class ), Ġstr ) Ċ @ Implicit Reflection Serializer Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > ĠString Format . parse List ( objects : ĠString ): ĠList < T > Ġ= Ġparse ( context . get OrDefault ( T :: class ). list , Ġobjects ) Ċ @ Implicit Reflection Serializer Ċ inline Ġfun Ġ< re ified ĠK Ġ: ĠAny , Ġre ified ĠV : ĠAny > ĠString Format . parse Map ( map : ĠString ) ĊĠĠĠĠĠĠĠ Ġ= Ġparse (( context . get OrDefault ( K :: class ) Ġto Ġcontext . get OrDefault ( V :: class )). map , Ġmap ) Ċ