package Ġio . github . c row _ mis ia . li by uv Ċ Ċ import Ġjava . nio . ByteBuffer Ċ Ċ internal Ġfun ĠByteBuffer . as ByteArray (): ĠByteArray Ġ{ ĊĠĠĠ Ġval Ġcapacity Ġ= Ġcapacity () ĊĠĠĠ Ġval Ġresults Ġ= ĠByteArray ( capacity ) ĊĠĠĠ Ġval Ġsrc Obj : ĠAny Ġ= Ġif Ġ( is Direct ) Ġthis Ġelse Ġarray () ĊĊĠĠĠ ĠY uv . mem copy ( results , Ġsrc Obj , Ġcapacity ) ĊĠĠĠ Ġreturn Ġresults Ċ } Ċ Ċ internal Ġfun ĠByteBuffer . as ByteArray ( dst : ĠByteArray ) Ġ{ ĊĠĠĠ Ġval Ġcapacity Ġ= Ġcapacity () ĊĠĠĠ Ġval Ġsrc Obj : ĠAny Ġ= Ġif Ġ( is Direct ) Ġthis Ġelse Ġarray () ĊĠĠĠ Ġcheck ( dst . size Ġ>= Ġcapacity ) Ġ{ Ġ" dst Ġsize Ġis Ġless Ġthan Ġcapacity " Ġ} ĊĊĠĠĠ ĠY uv . mem copy ( dst , Ġsrc Obj , Ġcapacity ) Ċ } Ċ Ċ internal Ġfun Ġcreate ByteBuffer ( capacity : ĠInt ): ĠByteBuffer Ġ{ ĊĠĠĠ Ġreturn ĠY uv . alloc Native Buffer ( capacity ) Ċ } Ċ Ċ internal Ġfun ĠByteBuffer . slice Range ( offset : ĠInt , Ġlength : ĠInt ): ĠByteBuffer Ġ{ ĊĠĠĠ Ġlimit ( offset Ġ+ Ġlength ) ĊĠĠĠ Ġposition ( offset ) ĊĊĠĠĠ Ġval Ġresult Ġ= Ġslice () ĊĠĠĠ Ġclear () ĊĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ internal Ġfun ĠByteBuffer . slice ( var arg Ġslice Lengths : ĠInt ): ĠArray < ByteBuffer > Ġ{ ĊĠĠĠ Ġclear () ĊĠĠĠ Ġlimit ( 0 ) ĊĠĠĠ Ġval Ġresults Ġ= ĠarrayOf Null s < ByteBuffer >( slice Lengths . size ) ĊĠĠĠ Ġfor Ġ( i Ġin Ġslice Lengths . indices ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġslice Length Ġ= Ġslice Lengths [ i ] ĊĠĠĠĠĠĠĠ Ġposition ( limit ()) ĊĠĠĠĠĠĠĠ Ġlimit ( limit () Ġ+ Ġslice Length ) ĊĠĠĠĠĠĠĠ Ġresults [ i ] Ġ= Ġslice () ĊĠĠĠ Ġ} ĊĠĠĠ Ġcheck ( capacity () Ġ== Ġlimit ()) Ġ{ Ġ" buffer Ġcapacity Ġis Ġbigger Ġthan Ġexpected " Ġ} ĊĠĠĠ Ġclear () ĊĠĠĠ Ġreturn Ġresults . require No Null s () Ċ } Ċ Ċ @ Suppress (" NOTH ING _ TO _ INLINE ") Ċ internal Ġinline Ġoperator Ġfun ĠInt Array . component 6 () Ġ= Ġthis [ 5 ] Ċ