package Ġcom . ror page . pur ty weather . network Ċ Ċ import Ġjava . io . IOException Ċ Ċ sealed Ġclass ĠResult < out ĠT : ĠAny > Ġ{ ĊĠĠĠ Ġdata Ġclass ĠSuccess < out ĠT Ġ: ĠAny >( val Ġdata : ĠT ) Ġ: ĠResult < T >() ĊĠĠĠ Ġdata Ġclass ĠError ( val Ġexception : ĠException ) Ġ: ĠResult < Nothing >() Ċ } Ċ Ċ suspend Ġfun Ġ< T Ġ: ĠAny > Ġsafe Api Call ( call : Ġsuspend Ġ() Ġ-> ĠResult < T >, ĠerrorMessage : ĠString ): ĠResult < T > Ġ= Ġtry Ġ{ ĊĠĠĠ Ġcall . invoke () Ċ } Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠ ĠResult . Error ( IOException ( e . message , Ġe )) Ċ } ĊĊ