package Ġcom . sk sam uel . avro 4 k Ċ Ċ import Ġkotlinx . serialization .* Ċ import Ġkotlinx . serialization . builtins . list Ċ import Ġkotlinx . serialization . builtins . nullable Ċ import Ġkotlinx . serialization . builtins . serializer Ċ Ċ fun ĠSerial Descriptor . leaf s Of Se aled Classes () Ġ: ĠList < Serial Descriptor > Ġ{ ĊĠĠ Ġreturn Ġif Ġ( this . kind Ġ== ĠPol ymorphic Kind . SE AL ED ) Ġ{ ĊĠĠĠĠĠ Ġelement Descriptors (). filter Ġ{ it . kind Ġ== ĠUnion Kind . CONTEXT UAL Ġ}. flatMap Ġ{ Ġit . element Descriptors () Ġ}. flatMap Ġ{ Ġit . leaf s Of Se aled Classes () Ġ} ĊĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ ĠlistOf ( this ) ĊĠĠ Ġ} Ċ } Ċ Ċ fun ĠSerial Descriptor . serializer () Ġ: ĠK Serializer < out ĠAny ?> Ġ{ ĊĠĠ Ġval Ġnot Nullable Serializer Ġ= Ġwhen ( kind ){ ĊĠĠĠĠĠ ĠPrimitive Kind . BOOLEAN Ġ-> ĠBoolean . serializer () ĊĠĠĠĠĠ ĠPrimitive Kind . INT Ġ-> ĠInt . serializer () ĊĠĠĠĠĠ ĠPrimitive Kind . LONG Ġ-> ĠLong . serializer () ĊĠĠĠĠĠ ĠPrimitive Kind . FLOAT Ġ-> ĠFloat . serializer () ĊĠĠĠĠĠ ĠPrimitive Kind . BOOLEAN Ġ-> ĠBoolean . serializer () ĊĠĠĠĠĠ ĠPrimitive Kind . BYTE Ġ-> ĠByte . serializer () ĊĠĠĠĠĠ ĠPrimitive Kind . SHORT Ġ-> ĠShort . serializer () ĊĠĠĠĠĠ ĠPrimitive Kind . STRING Ġ-> ĠString . serializer () ĊĠĠĠĠĠ ĠStructure Kind . LIST Ġ-> Ġthis . element Descriptors (). single (). serializer (). list ĊĠĠĠĠĠ Ġelse Ġ-> ĠTODO (" only Ġimplemented Ġprimitive Ġtypes Ġfor Ġnow ") Ċ } ĊĠĠ Ġreturn Ġif ( this . is Nullable ){ ĊĠĠĠĠĠ Ġnot Nullable Serializer . nullable ĊĠĠ Ġ} else { ĊĠĠĠĠĠ Ġnot Nullable Serializer ĊĠĠ Ġ} Ċ Ċ }