@ file : Jvm Name (" Utils ") Ċ Ċ package Ġnet . cord a . core Ċ Ċ import Ġnet . cord a . core . concurrent . C ord a Future Ċ import Ġnet . cord a . core . internal . concurrent . open Future Ċ import Ġnet . cord a . core . internal . concurrent . then Match Ċ import Ġnet . cord a . core . messaging . Data Feed Ċ import Ġrx . Observable Ċ import Ġrx . Observer Ċ Ċ // ĠTODO ĠDelete Ġthis Ġfile Ġonce Ġthe ĠFuture Ġstuff Ġis Ġout Ġof Ġhere Ċ Ċ fun Ġ< A > ĠC ord a Future < out ĠA >. to Observable (): ĠObservable < A > Ġ{ ĊĠĠĠ Ġreturn ĠObservable . unsafe Create Ġ{ Ġsubscriber Ġ-> ĊĠĠĠĠĠĠĠ Ġthen Match ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubscriber . onNext ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubscriber . on Completed () ĊĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubscriber . onError ( it ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġa Ġ[ C ord a Future ] Ġbound Ġto Ġthe Ġ* first * Ġitem Ġemitted Ġby Ġthis ĠObservable . ĠThe Ġfuture Ġwill Ġcomplete Ġwith Ġa Ċ Ġ* ĠNoSuch ElementException Ġif Ġno Ġitems Ġare Ġemitted Ġor Ġany Ġother Ġerror Ġthrown Ġby Ġthe ĠObservable . ĠIf Ġit 's Ġcancelled Ġthen Ċ Ġ* Ġit Ġwill Ġunsubscribe Ġfrom Ġthe Ġobservable . Ċ Ġ*/ Ċ fun Ġ< T > ĠObservable < T >. to Future (): ĠC ord a Future < T > Ġ= Ġopen Future < T >(). also Ġ{ ĊĠĠĠ Ġval Ġsubscription Ġ= Ġfirst (). subscribe ( object Ġ: ĠObserver < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Next ( value : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Exception ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Completed () Ġ{} ĊĠĠĠ Ġ}) ĊĠĠĠ Ġit . then Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( it . is Cancelled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubscription . unsubscribe () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġa Ġ[ Data Feed ] Ġthat Ġtransforms Ġerrors Ġaccording Ġto Ġthe Ġprovided Ġ[ transform ] Ġfunction . Ċ Ġ*/ Ċ fun Ġ< SNAPSHOT , ĠELEMENT > ĠData Feed < SNAPSHOT , ĠELEMENT >. map Errors ( transform : Ġ( Throwable ) Ġ-> ĠThrowable ): ĠData Feed < SNAPSHOT , ĠELEMENT > Ġ{ ĊĊĠĠĠ Ġreturn Ġcopy ( updates Ġ= Ġupdates . map Errors ( transform )) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġa Ġ[ Data Feed ] Ġthat Ġprocesses Ġerrors Ġaccording Ġto Ġthe Ġprovided Ġ[ action ]. Ċ Ġ*/ Ċ fun Ġ< SNAPSHOT , ĠELEMENT > ĠData Feed < SNAPSHOT , ĠELEMENT >. do OnError ( action : Ġ( Throwable ) Ġ-> ĠUnit ): ĠData Feed < SNAPSHOT , ĠELEMENT > Ġ{ ĊĊĠĠĠ Ġreturn Ġcopy ( updates Ġ= Ġupdates . do OnError ( action )) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġan Ġ[ Observable ] Ġthat Ġtransforms Ġerrors Ġaccording Ġto Ġthe Ġprovided Ġ[ transform ] Ġfunction . Ċ Ġ*/ Ċ fun Ġ< ELEMENT > ĠObservable < ELEMENT >. map Errors ( transform : Ġ( Throwable ) Ġ-> ĠThrowable ): ĠObservable < ELEMENT > Ġ{ ĊĊĠĠĠ Ġreturn ĠonError Resume Next Ġ{ Ġerror Ġ-> ĊĠĠĠĠĠĠĠ ĠObservable . error ( transform ( error )) ĊĠĠĠ Ġ} Ċ } Ċ