package Ġkotlinx . kotlin ui čĊč Ċ import Ġandroid . util . Size F č Ċ import Ġkotlinx . ptype . P Type č Ċ import Ġkotlinx . serialization .* č Ċ import Ġkotlinx . serialization . descriptors .* č Ċ import Ġkotlinx . serialization . encoding .* čĊč Ċ @ Serializable ( with Ġ= Ġ_ Shadow Effect . Serializer :: class ) č Ċ data Ġclass Ġ_ Shadow Effect ( čĊĠĠĠ Ġval Ġcolor : ĠColor , čĊĠĠĠ Ġval Ġradius : ĠFloat , čĊĠĠĠ Ġval Ġoffset : ĠSize F č Ċ ) Ġ: ĠView Modifier Ġ{ čĊĠĠĠ Ġ// : ĠCod able čĊĠĠĠ Ġinternal Ġobject ĠSerializer Ġ: ĠK Serializer <_ Shadow Effect > Ġ{ čĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġdescriptor : ĠSerial Descriptor Ġ= čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Class Serial Descriptor (": _ Shadow Effect ") Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelement (" color ", ĠColor . Serializer . descriptor ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelement < Float >(" radius ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelement (" offset ", ĠSize F Serializer . descriptor ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġserialize ( encoder : ĠEncoder , Ġvalue : Ġ_ Shadow Effect ) Ġ= čĊĠĠĠĠĠĠĠĠĠĠĠ Ġencoder . encode Structure ( descriptor ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencode Serializable Element ( descriptor , Ġ 0 , ĠColor . Serializer , Ġvalue . color ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencode Float Element ( descriptor , Ġ 1 , Ġvalue . radius ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencode Serializable Element ( descriptor , Ġ 2 , ĠSize F Serializer , Ġvalue . offset ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdeserialize ( decoder : ĠDecoder ): Ġ_ Shadow Effect Ġ= čĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecoder . decode Structure ( descriptor ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġcolor : ĠColor čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġradius : ĠFloat Ġ= Ġ 0 f čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġoffset : ĠSize F čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( true ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġindex Ġ= Ġdecode Element Index ( descriptor )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġcolor Ġ= Ġdecode Serializable Element ( descriptor , Ġ 0 , ĠColor . Serializer ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġradius Ġ= Ġdecode Float Element ( descriptor , Ġ 1 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġoffset Ġ= Ġdecode Serializable Element ( descriptor , Ġ 0 , ĠSize F Serializer ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComposite Decoder . DECODE _ DONE Ġ-> Ġbreak čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġerror (" Unexpected Ġindex : Ġ$ index ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ Shadow Effect ( color , Ġradius , Ġoffset ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġcompanion Ġobject Ġ{ čĊĠĠĠĠĠĠĠ Ġ// : ĠRegister čĊĠĠĠĠĠĠĠ Ġfun Ġregister () Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠP Type . register <_ Shadow Effect >() čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ } čĊč Ċ fun ĠView . shadow ( color : ĠColor Ġ= ĠColor ( Color . RGB Color Space . s RGB Linear , Ġ 0 . 0 , Ġ 0 . 3 3 ), Ġradius : ĠFloat , Ġx : ĠFloat Ġ= Ġ 0 f , Ġy : ĠFloat Ġ= Ġ 0 f ): ĠView Ġ= čĊĠĠĠ Ġmodifier (_ Shadow Effect ( color , Ġradius , ĠSize F ( x , Ġy ))) čĊ