package Ġio . jo el . spring bank . api Ċ Ċ import Ġio . jo el . spring bank . api . request .* Ċ import Ġio . jo el . spring bank . api . response . Account Created Response Ċ import Ġio . jo el . spring bank . api . response . Account Deleted Response Ċ import Ġio . jo el . spring bank . api . response . Account Updated Response Ċ import Ġkotlinx . serialization .* Ċ import Ġkotlinx . serialization . modules .* Ċ import Ġkotlinx . serialization . protobuf . Proto Buf Ċ Ċ public Ġobject ĠFormat Ġ{ ĊĠĠĠ Ġpublic Ġfun Ġto Protobuf ( obj : ĠMessage ): ĠByteArray Ġ= Ġformat . encode To ByteArray ( Pol ymorphic Serializer ( Message :: class ), Ġobj ) ĊĊĠĠĠ Ġpublic Ġfun Ġfrom Protobuf ( arr : ĠByteArray ): ĠMessage Ġ= Ġformat . decode From ByteArray ( Pol ymorphic Serializer ( Message :: class ), Ġarr ) ĊĊĠĠĠ Ġprivate Ġval Ġformat Ġ= ĠProto Buf Ġ{ ĊĠĠĠĠĠĠĠ Ġserializers Module Ġ= ĠSerial izers Module Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpol ymorphic ( Message :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRequests ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubclass ( Create Account Request :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubclass ( Delete Account Request :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubclass ( Echo Request :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubclass ( Null Request :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubclass ( Unit Request :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubclass ( Update Account Request :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠResponse s ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubclass ( Account Created Response :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubclass ( Account Deleted Response :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubclass ( Account Updated Response :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ