package Ġorg . sky f aced . w opi . utils . result Ċ Ċ /* ĊĠĠĠ ĠMIT ĠLicense ĊĊĠĠĠ ĠCopyright Ġ( c ) Ġ 2 0 2 0 ĠAndroid ĠBroadcast ĊĊĠĠĠ ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy ĊĠĠĠ Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal ĊĠĠĠ Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights ĊĠĠĠ Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell ĊĠĠĠ Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis ĊĠĠĠ Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : ĊĊĠĠĠ ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall ĊĠĠĠ Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . ĊĊĠĠĠ ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR ĊĠĠĠ ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , ĊĠĠĠ ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĊĠĠĠ ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER ĊĠĠĠ ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , ĊĠĠĠ ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE ĊĠĠĠ ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ import Ġkotlin . contracts . Experimental Contracts Ċ import Ġkotlin . contracts . contract Ċ Ċ fun Ġ< T > ĠResult < T >. is Success (): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġthis Ġis ĠResult . Success Ċ } Ċ Ċ fun Ġ< T > ĠResult < T >. as Success (): ĠResult . Success < T > Ġ{ ĊĠĠĠ Ġreturn Ġthis Ġas ĠResult . Success < T > Ċ } Ċ Ċ @ Opt In ( Experimental Contracts :: class ) Ċ fun Ġ< T > ĠResult < T >. is Failure (): ĠBoolean Ġ{ ĊĠĠĠ Ġcontract Ġ{ ĊĠĠĠĠĠĠĠ Ġreturns ( true ) Ġimplies Ġ( this @ is Failure Ġis ĠResult . Failure <* >) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġthis Ġis ĠResult . Failure < *> Ċ } Ċ Ċ fun Ġ< T > ĠResult < T >. as Failure (): ĠResult . Failure < *> Ġ{ ĊĠĠĠ Ġreturn Ġthis Ġas ĠResult . Failure < *> Ċ } Ċ Ċ fun Ġ< T , ĠR > ĠResult < T >. map ( transform : Ġ( value : ĠT ) Ġ-> ĠR ): ĠResult < R > Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> ĠResult . Success . Value ( transform ( value )) ĊĠĠĠĠĠĠĠ Ġis ĠResult . Failure < *> Ġ-> Ġthis ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġ< T , ĠR > ĠResult < T >. flatMap ( transform : Ġ( result : ĠResult < T >) Ġ-> ĠResult < R >): ĠResult < R > Ġ{ ĊĠĠĠ Ġreturn Ġtransform ( this ) Ċ } Ċ Ċ @ Opt In ( Experimental Contracts :: class ) Ċ fun ĠResult <* >. is Http Error (): ĠBoolean Ġ{ ĊĠĠĠ Ġcontract Ġ{ ĊĠĠĠĠĠĠĠ Ġreturns ( true ) Ġimplies Ġ( this @ is Http Error Ġis ĠResult . Failure . Http Error ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġthis Ġis ĠResult . Failure . Http Error Ċ } Ċ Ċ fun Ġ< T > ĠResult < T >. as Http Error (): ĠResult . Failure . Http Error Ġ{ ĊĠĠĠ Ġreturn Ġthis Ġas ĠResult . Failure . Http Error Ċ }