package Ġorg . du ang s use . dok uss . struct Ċ Ċ import Ġorg . du ang s use . dok uss . bytes . Cnt Ċ import Ġorg . du ang s use . dok uss . intf . Reader Ċ import Ġorg . du ang s use . dok uss . intf . Writer Ċ Ċ /** ĠGive Ġme Ġa Ġstruct , ĠI Ġcan Ġread Ġit Ġmultiply Ġtimes Ġ( for Ġa Ġnumber Ġthat Ġcan Ġbe Ġeasily Ġdetermined Ġruntime ) Ġ*/ Ċ class ĠMany < T >( val Ġsub struct : ĠStruct < T >, Ġval Ġread _ count : ĠReader . () Ġ-> ĠC nt ): ĠStruct < Array < T >> Ġ{ ĊĠ Ġoverride Ġfun Ġread ( r : ĠReader ): ĠArray < T > Ġ{ ĊĠĠĠ Ġval Ġcount Ġ= Ġr . read _ count () ĊĠĠĠ Ġval Ġ ary Ġ= ĠarrayOf Null s < Any ? >( count ) ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġcount ) ĊĠĠĠĠĠ Ġ{ Ġ ary [ i ] Ġ= Ġsub struct . read ( r ) Ġ} ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġreturn Ġ ary Ġas ĠArray < T > ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġwrite ( w : ĠWriter , Ġdata : ĠArray < T >) Ġ{ ĊĠĠĠ Ġfor Ġ( item Ġin Ġdata ) ĊĠĠĠĠĠ Ġ{ Ġsub struct . write ( w , Ġitem ) Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġval Ġsize : ĠC nt ? Ġ= Ġnull ĊĊĠ Ġ/** Ġ[ Many ] Ġusing Ġreduce Ġpattern Ġ*/ ĊĠ Ġclass ĠFold Ġ{} Ċ } Ċ