/** Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 3 - 2 0 2 0 ĠNik ita ĠK ok shar ov Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġorg . vit aly ros . redis son . kotlin . coroutines Ċ Ċ /** Ċ Ġ* Ċ Ġ* ĠBased Ġon Ġthe Ġoriginal Ġorg . redis son . api . R List Reactive Ġby ĠNik ita ĠK ok shar ov Ċ Ġ* Ġ@ see Ġorg . redis son . api . R List Reactive Ċ Ġ* ĠModified Ġto Ġuse Ġwithin Ġkotlin Ġcor outines Ċ Ġ* Ċ Ġ* Ċ Ġ* Ġ@ param Ġ< V > Ġthe Ġtype Ġof Ġelements Ġheld Ġin Ġthis Ġcollection Ċ Ġ*/ Ċ interface ĠR List Cor outines < V > Ġ: ĠR Collection Cor outines < V >, ĠR Sortable Cor outines < List < V >> Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLoads Ġelements Ġby Ġspecified Ġ` indexes ` ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġindexes Ġof Ġelements ĊĠĠĠĠ Ġ* Ġ@ return Ġelements ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġget ( var arg Ġindexes : ĠInt ): ĠList < V > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdd Ġ` element ` Ġafter Ġ` element To Find ` ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġelement To Find Ġ- Ġobject Ġto Ġfind ĊĠĠĠĠ Ġ* Ġ@ param Ġelement Ġ- Ġobject Ġto Ġadd ĊĠĠĠĠ Ġ* Ġ@ return Ġnew Ġlist Ġsize ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġadd After ( element To Find : ĠV , Ġelement : ĠV ): ĠInt ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdd Ġ` element ` Ġbefore Ġ` element To Find ` ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġelement To Find Ġ- Ġobject Ġto Ġfind ĊĠĠĠĠ Ġ* Ġ@ param Ġelement Ġ- Ġobject Ġto Ġadd ĊĠĠĠĠ Ġ* Ġ@ return Ġnew Ġlist Ġsize ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġadd Before ( element To Find : ĠV , Ġelement : ĠV ): ĠInt ĊĊĠĠĠ Ġsuspend Ġfun Ġdescending Iterator (): ĠIterator < V > ĊĠĠĠ Ġsuspend Ġfun Ġdescending Iterator ( startIndex : ĠInt ): ĠIterator < V > ĊĠĠĠ Ġsuspend Ġfun Ġiterator ( startIndex : ĠInt ): ĠIterator < V > ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġlast Ġindex Ġof Ġ` element ` Ġor ĊĠĠĠĠ Ġ* Ġ- 1 Ġif Ġelement Ġisn 't Ġfound ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġelement Ġto Ġfind ĊĠĠĠĠ Ġ* Ġ@ return Ġindex Ġof Ġ- 1 Ġif Ġelement Ġisn 't Ġfound ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġlast IndexOf ( element : ĠAny ): ĠInt ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġlast Ġindex Ġof Ġ` element ` Ġor ĊĠĠĠĠ Ġ* Ġ- 1 Ġif Ġelement Ġisn 't Ġfound ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġelement Ġto Ġfind ĊĠĠĠĠ Ġ* Ġ@ return Ġindex Ġof Ġ- 1 Ġif Ġelement Ġisn 't Ġfound ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun ĠindexOf ( element : ĠAny ): ĠInt ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInser ts Ġ` element ` Ġat Ġ` index `. ĊĠĠĠĠ Ġ* ĠSub sequent Ġelements Ġare Ġshifted . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġindex Ġ- Ġindex Ġnumber ĊĠĠĠĠ Ġ* Ġ@ param Ġelement Ġ- Ġelement Ġto Ġinsert ĊĠĠĠĠ Ġ* Ġtodo Ġoriginal ĠR List Reactive Ġdocumentation Ġon Ġthis Ġmethod Ġsaid Ġit Ġreturns Ġ` true ` Ġif Ġlist Ġwas Ġchanged , Ġbut Ġthe Ġresult Ġtype Ġwas ĠMono < Void >, Ġthis Ġmight Ġbe Ġfixed Ġin Ġfuture ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġadd ( index : ĠInt , Ġelement : ĠV ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInser ts Ġ` elements ` Ġat Ġ` index `. ĊĠĠĠĠ Ġ* ĠSub sequent Ġelements Ġare Ġshifted . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġindex Ġ- Ġindex Ġnumber ĊĠĠĠĠ Ġ* Ġ@ param Ġelements Ġ- Ġelements Ġto Ġinsert ĊĠĠĠĠ Ġ* Ġ@ return Ġ` true ` Ġif Ġlist Ġchanged ĊĠĠĠĠ Ġ* Ġor Ġ` false ` Ġif Ġelement Ġisn 't Ġfound ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġadd All ( index : ĠInt , Ġelements : ĠCollection < V >): ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġ` element ` Ġat Ġ` index `. ĊĠĠĠĠ Ġ* ĠWorks Ġfaster Ġthan Ġ[. set ] Ġbut ĊĠĠĠĠ Ġ* Ġdoesn 't Ġreturn Ġprevious Ġelement . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġindex Ġ- Ġindex Ġof Ġobject ĊĠĠĠĠ Ġ* Ġ@ param Ġelement Ġ- Ġobject ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġfast Set ( index : ĠInt , Ġelement : ĠV ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġ` element ` Ġat Ġ` index ` Ġand Ġreturns Ġprevious Ġelement . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġindex Ġ- Ġindex Ġof Ġobject ĊĠĠĠĠ Ġ* Ġ@ param Ġelement Ġ- Ġobject ĊĠĠĠĠ Ġ* Ġ@ return Ġprevious Ġelement Ġor Ġ` null ` Ġif Ġelement Ġwasn 't Ġset . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġset ( index : ĠInt , Ġelement : ĠV ): ĠV ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġelement Ġat Ġ` index ` ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġindex Ġ- Ġindex Ġof Ġobject ĊĠĠĠĠ Ġ* Ġ@ return Ġelement ĊĠĠĠĠ Ġ* Ġtodo Ġcheck Ġif Ġthe Ġreturned Ġelement Ġcan Ġbe Ġnull Ġif Ġthe Ġindex Ġis Ġout Ġof Ġthe ĠList 's Ġbounds ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġget ( index : ĠInt ): ĠV ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemoves Ġelement Ġat Ġ` index `. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġindex Ġ- Ġindex Ġof Ġobject ĊĠĠĠĠ Ġ* Ġ@ return Ġelement Ġor Ġ` null ` Ġif Ġelement Ġwasn 't Ġset . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġremove At ( index : ĠInt ): ĠV ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRead Ġall Ġelements Ġat Ġonce ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġlist Ġof Ġvalues ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġread All (): ĠList < V > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTrim Ġlist Ġand Ġremains Ġelements Ġonly Ġin Ġspecified Ġrange ĊĠĠĠĠ Ġ* Ġ` from Index `, Ġinclusive , Ġand Ġ` to Index `, Ġinclusive . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom Index Ġ- Ġfrom Ġindex ĊĠĠĠĠ Ġ* Ġ@ param Ġto Index Ġ- Ġto Ġindex ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġtrim ( from Index : ĠInt , Ġto Index : ĠInt ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemove Ġobject Ġby Ġspecified Ġindex ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġindex Ġ- Ġindex Ġof Ġobject ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġfast Remove ( index : ĠInt ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġrange Ġof Ġvalues Ġfrom Ġ 0 Ġindex Ġto Ġ` to Index `. ĠIndexes Ġare Ġzero Ġbased . ĊĠĠĠĠ Ġ* Ġ`- 1 ` Ġmeans Ġthe Ġlast Ġelement , Ġ`- 2 ` Ġmeans Ġpen ult imate Ġand Ġso Ġon . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġto Index Ġ- Ġend Ġindex ĊĠĠĠĠ Ġ* Ġ@ return Ġelements ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġrange ( to Index : ĠInt ): ĠList < V > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġrange Ġof Ġvalues Ġfrom Ġ` from Index ` Ġto Ġ` to Index ` Ġindex Ġincluding . ĊĠĠĠĠ Ġ* ĠIndexes Ġare Ġzero Ġbased . Ġ`- 1 ` Ġmeans Ġthe Ġlast Ġelement , Ġ`- 2 ` Ġmeans Ġpen ult imate Ġand Ġso Ġon . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom Index Ġ- Ġstart Ġindex ĊĠĠĠĠ Ġ* Ġ@ param Ġto Index Ġ- Ġend Ġindex ĊĠĠĠĠ Ġ* Ġ@ return Ġelements ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġrange ( from Index : ĠInt , Ġto Index : ĠInt ): ĠList < V > Ċ }