package Ġapp . story tel . candidate . com . utils . networking Ċ Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . lang . Exception Ċ Ċ object ĠNetwork Utils Ġ{ ĊĠĠĠ Ġinline Ġfun Ġ< T > Ġfuture ( callback : Ġ() Ġ-> ĠT ): ĠFuture Result < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcallback () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" qq q Ġresult =$ result ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFuture Result ( result , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFuture Result ( null , Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T > ĠFuture Result < T >. on Success ( callback :( data : T )-> Unit ): Future Result < T >{ ĊĠĠĠĠĠĠĠ Ġif ( data Ġ!= Ġnull ) Ġcallback ( data ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġ< T > ĠFuture Result < T >. onError ( callback :( error : Exception )-> Unit ): Future Result < T >{ ĊĠĠĠĠĠĠĠ Ġif ( error Ġ!= Ġnull ) Ġcallback ( error ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ data Ġclass ĠFuture Result < T >( ĊĠĠĠ Ġval Ġdata : T ?, ĊĠĠĠ Ġval Ġerror : ĠException ?)