package Ġk z . weather . domain . model Ċ Ċ sealed Ġclass ĠResult < out ĠT Ġ: ĠAny > Ċ data Ġclass ĠSuccess < out ĠT Ġ: ĠAny >( val Ġdata : ĠT ) Ġ: ĠResult < T >() Ċ data Ġclass ĠFailure ( val Ġhttp Error : ĠHttp Error ) Ġ: ĠResult < Nothing >() Ċ Ċ class ĠHttp Error ( val Ġthrowable : ĠThrowable , Ġval ĠerrorCode : ĠInt Ġ= Ġ 0 ) Ċ Ċ inline Ġfun Ġ< T Ġ: ĠAny > ĠResult < T >. on Success ( action : Ġ( T ) Ġ-> ĠUnit ): ĠResult < T > Ġ{ ĊĠ Ġif Ġ( this Ġis ĠSuccess ) Ġaction ( data ) ĊĠ Ġreturn Ġthis Ċ } Ċ Ċ inline Ġfun Ġ< T Ġ: ĠAny > ĠResult < T >. on Failure ( action : Ġ( Http Error ) Ġ-> ĠUnit ) Ġ{ ĊĠ Ġif Ġ( this Ġis ĠFailure ) Ġaction ( http Error ) Ċ }