package Ġcom . k rom er . domain . utils Ċ Ċ data Ġclass ĠResource < out ĠT >( ĊĠĠĠ Ġval Ġstatus : ĠStatus , ĊĠĠĠ Ġval Ġdata : ĠT ?, ĊĠĠĠ Ġval Ġmessage : ĠString ?, ĊĠĠĠ Ġval Ġvalidation Error : ĠValidationError ? Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġsuccess ( data : ĠT ): ĠResource < T > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResource ( status Ġ= ĠStatus . SUCCESS , Ġdata Ġ= Ġdata , Ġmessage Ġ= Ġnull , Ġvalidation Error Ġ= Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġerror ( message : ĠString ?, Ġvalidation Error : ĠValidationError ?): ĠResource < T > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResource ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= ĠStatus . ERROR , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġmessage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalidation Error Ġ= Ġvalidation Error ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġloading (): ĠResource < T > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResource ( status Ġ= ĠStatus . LOADING , Ġdata Ġ= Ġnull , Ġmessage Ġ= Ġnull , Ġvalidation Error Ġ= Ġnull ) ĊĠĠĠ Ġ} Ċ }