package Ġir . hus se in r ast i . domain . base Ċ Ċ /** Ċ Ġ* ĠA Ġgeneric Ġclass Ġthat Ġholds Ġa Ġvalue Ġwith Ġits Ġloading Ġstatus . Ċ Ġ* Ċ Ġ* ĠResult Ġis Ġusually Ġcreated Ġby Ġthe ĠRepository Ġclasses Ġwhere Ġthey Ġreturn Ċ Ġ* Ġ` Result < T >` Ġto Ġpass Ġback Ġthe Ġlatest Ġdata Ġto Ġthe ĠUI Ġwith Ġits Ġfetch Ġstatus . Ċ Ġ*/ Ċ Ċ data Ġclass ĠResult State < out ĠT >( ĊĠĠĠ Ġval Ġstatus : ĠStatus , ĊĠĠĠ Ġval Ġdata : ĠT ?, ĊĠĠĠ Ġval Ġexp : ĠFailure ? Ċ ) Ġ{ ĊĊĠĠĠ Ġenum Ġclass ĠStatus Ġ{ ĊĠĠĠĠĠĠĠ ĠSUCCESS , ĊĠĠĠĠĠĠĠ ĠERROR ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġsuccess ( data : ĠT , Ġexp : ĠFailure ? Ġ= Ġnull ): ĠResult State < T > Ġ= ĠResult State ( Status . SUCCESS , Ġdata , Ġexp ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġerror ( exp : ĠFailure , Ġdata : ĠT ? Ġ= Ġnull ): ĠResult State < T > Ġ= ĠResult State ( Status . ERROR , Ġdata , Ġexp ) ĊĠĠĠ Ġ} Ċ Ċ }