/* Ċ Ġ* ĠDesign ed Ġand Ġdeveloped Ġby Ġ 2 0 2 0 Ġw z asd Ġ( J eff rey Ġw ang ) Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . fo unic y . module . gin . operators Ċ Ċ import Ġcom . fo unic y . module . gin . ApiResponse Ċ Ċ /** Ċ Ġ* Ċ Ġ* ĠApiResponse Suspend Operator Ġoper ates Ġon Ġan Ġ[ ApiResponse ] Ġwhich Ġshould Ġbe Ġhandled Ġin Ġthe Ġsus pension Ġscope . Ċ Ġ* ĠThis Ġallows Ġyou Ġto Ġhandle Ġsuccess Ġand Ġerror Ġresponse Ġinstead Ġof Ġthe Ġ[ com . fo unic y . module . gin . suspend On Success ], Ċ Ġ* Ġ[ com . fo unic y . module . gin . suspend OnError ], Ġ[ com . fo unic y . module . gin . suspend On Exception ] Ġtransform ers . Ċ Ġ* ĠThis Ġoperator Ġcan Ġbe Ġapplied Ġglobally Ġas Ġa Ġsingleton Ġinstance , Ġor Ġon Ġeach Ġ[ ApiResponse ] Ġone Ġby Ġone . Ċ Ġ*/ Ċ public Ġabstract Ġclass ĠApiResponse Suspend Operator < T > Ġ: ĠG in Operator Ġ{ ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠOper ates Ġthe Ġ[ ApiResponse . Success ] Ġfor Ġhandling Ġsuccessful Ġresponses Ġif Ġthe Ġrequest Ġsucceeds . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġapi Response ĠThe Ġsuccessful Ġresponse . ĊĠĠ Ġ*/ ĊĠ Ġpublic Ġabstract Ġsuspend Ġfun ĠonSuccess ( api Response : ĠApiResponse . Success < T >) ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠOper ates Ġthe Ġ[ ApiResponse . Failure . Error ] Ġfor Ġhandling Ġerror Ġresponses Ġif Ġthe Ġrequest Ġfailed . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġapi Response ĠThe Ġfailed Ġresponse . ĊĠĠ Ġ*/ ĊĠ Ġpublic Ġabstract Ġsuspend Ġfun ĠonError ( api Response : ĠApiResponse . Failure . Error < T >) ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠOper ates Ġthe Ġ[ ApiResponse . Failure . Exception ] Ġfor Ġhandling Ġexception Ġresponses Ġif Ġthe Ġrequest Ġget Ġan Ġexception . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġapi Response ĠThe Ġexception Ġresponse . ĊĠĠ Ġ*/ ĊĠ Ġpublic Ġabstract Ġsuspend Ġfun Ġon Exception ( api Response : ĠApiResponse . Failure . Exception < T >) Ċ } Ċ