package Ġhead out . oss . er go . models Ċ Ċ import Ġhead out . oss . er go . annotations . TaskId Ċ import Ġhead out . oss . er go . exceptions . Base Job Error Ċ import Ġhead out . oss . er go . exceptions . Exception Utils . get StackTrace With Cause Ċ import Ġkotlinx . serialization . Serializable Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġsh iv an sh s 9 Ġon Ġ 2 1 / 0 5 / 2 0 . Ċ Ġ*/ Ċ @ Serializable Ċ data Ġclass ĠJob Result < out ĠT >( ĊĠĠĠ Ġval ĠtaskId : ĠTask Id , Ġval Ġjob Id : ĠJob Id , Ġval Ġdata : ĠT ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġmetadata : ĠJob Result Metadata Ċ ) Ġ: ĠJob Parameter Ġ{ ĊĠĠĠ Ġval Ġis Error Ġby Ġlazy Ġ{ Ġmetadata . status Ġ!= ĠJob Result Metadata . STATUS . SUCCESS . code Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġsuccess ( taskId : ĠTask Id , Ġjob Id : ĠJob Id , Ġdata : ĠT ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJob Result ( taskId , Ġjob Id , Ġdata , ĠJob Result Metadata . success ()) ĊĊĠĠĠĠĠĠĠ Ġfun Ġerror ( taskId : ĠTask Id , Ġjob Id : ĠJob Id , Ġerror : ĠBase Job Error ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJob Result < Unit >( taskId , Ġjob Id , Ġmetadata Ġ= ĠJob Result Metadata . error ( error )) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠJob Result Metadata Ġinternal Ġconstructor ( ĊĠĠĠ Ġval Ġstatus : ĠInt , Ġval Ġerror : ĠError Metadata ? Ċ ) Ġ{ ĊĠĠĠ Ġenum Ġclass ĠSTATUS ( val Ġcode : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSUCCESS ( 2 0 0 ), ĊĊĠĠĠĠĠĠĠ ĠERROR _ LIBRARY _ JOB _ CANCEL LED ( 5 0 3 ), ĊĠĠĠĠĠĠĠ ĠERROR _ LIBRARY _ INTERNAL ( 5 0 2 ), ĠERROR _ PARSE ( 4 2 2 ), ĠERROR _ NOT _ FOUND ( 4 0 4 ), ĊĊĠĠĠĠĠĠĠ ĠERROR _ CLIENT _ INTERNAL ( 5 0 0 ), ĠERROR _ INVALID _ REQUEST ( 4 0 0 ), ĠERROR _ FOR BID DEN ( 4 0 3 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġsuccess () Ġ= ĠJob Result Metadata ( STATUS . SUCCESS . code , Ġnull ) ĊĠĠĠĠĠĠĠ Ġfun Ġ< T Ġ: ĠBase Job Error > Ġerror ( error : ĠT ) Ġ= ĠJob Result Metadata ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror . status . code , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠError Metadata ( error . message Ġ?: Ġerror . localized Message , Ġerror . get StackTrace With Cause ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠError Metadata ( val Ġmessage : ĠString , Ġval Ġtraceback : ĠString ?)