/* Ċ Ġ* ĠThe ĠMIT ĠLicense Ġ( MIT ) Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 2 0 ĠNB CO ĠY oo Money ĠLLC Ċ Ġ* Ċ Ġ* Ġ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 . Ċ Ġ*/ Ċ Ċ package Ġru . y oom oney . sdk . k assa . payments . model Ċ Ċ internal Ġsealed Ġclass ĠResult < out ĠT Ġ: ĠAny > Ġ{ ĊĠĠĠ Ġdata Ġclass ĠSuccess < out ĠT Ġ: ĠAny >( val Ġvalue : ĠT ) Ġ: ĠResult < T >() ĊĠĠĠ Ġdata Ġclass ĠFail ( val Ġvalue : ĠThrowable ) Ġ: ĠResult < Nothing >() Ċ } Ċ Ċ internal Ġinline Ġfun Ġ< R : ĠAny , ĠT : ĠAny > ĠResult < T >. map ( transform : Ġ( value : ĠT ) Ġ-> ĠR ): ĠResult < R > Ġ{ ĊĠĠĠ Ġreturn Ġwhen ( this ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> ĠResult . Success ( transform ( value )) ĊĠĠĠĠĠĠĠ Ġis ĠResult . Fail Ġ-> ĠResult . Fail ( value ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġinline Ġfun Ġ< T , ĠR : ĠAny > ĠT . run Catch ing ( block : ĠT . () Ġ-> ĠR ): ĠResult < R > Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ ĠResult . Success ( block ()) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ ĠResult . Fail ( e ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġinline Ġfun Ġ< R : ĠAny , ĠT : ĠAny > ĠResult < T >. map Catch ing ( transform : Ġ( value : ĠT ) Ġ-> ĠR ): ĠResult < R > Ġ{ ĊĠĠĠ Ġreturn Ġwhen ( this ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> Ġrun Catch ing Ġ{ Ġtransform ( value ) Ġ} ĊĠĠĠĠĠĠĠ Ġis ĠResult . Fail Ġ-> ĠResult . Fail ( value ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġfun Ġ< T : ĠAny > ĠResult < T >. get OrThrow (): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> Ġvalue ĊĠĠĠĠĠĠĠ Ġis ĠResult . Fail Ġ-> Ġthrow Ġvalue ĊĠĠĠ Ġ} Ċ } Ċ