/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠEric ĠA . ĠSn ell Ċ Ġ* Ċ Ġ* Ġ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 . e al va . to que . common Ċ Ċ /** Ċ Ġ* ĠThrows Ġan Ġ[ IllegalArgumentException ] Ġwith Ġthe Ġresult Ġof Ġcalling Ġ[ lazy Message ] Ġif Ġthe Ġ[ value ] Ġis Ċ Ġ* Ġfalse , Ġelse Ġexecutes Ġ[ block ] Ġand Ġreturns Ġthe Ġresult . Ċ Ġ*/ Ċ inline Ġfun Ġ< T > Ġrequire Then ( value : ĠBoolean , Ġlazy Message : Ġ() Ġ-> ĠAny , Ġblock : Ġ() Ġ-> ĠT ): ĠT Ġ{ ĊĠ Ġrequire ( value , Ġlazy Message ) ĊĠ Ġreturn Ġblock () Ċ } Ċ Ċ /** Ċ Ġ* ĠThrows Ġan Ġ[ IllegalArgumentException ] Ġif Ġthe Ġ[ value ] Ġis Ġfalse , Ġelse Ġexecutes Ġ[ block ] Ċ Ġ*/ Ċ @ Suppress (" unused ") Ċ inline Ġfun Ġ< T > Ġrequire Then ( value : ĠBoolean , Ġblock : Ġ() Ġ-> ĠT ): ĠT Ġ= ĊĠ Ġrequire Then ( value , Ġ{ Ġ" Failed Ġrequirement ." Ġ}, Ġblock ) Ċ Ċ inline Ġfun Ġ< T > Ġcheck Then ( value : ĠBoolean , Ġlazy Message : Ġ() Ġ-> ĠAny , Ġblock : Ġ() Ġ-> ĠT ): ĠT Ġ{ ĊĠ Ġcheck ( value , Ġlazy Message ) ĊĠ Ġreturn Ġblock () Ċ } Ċ Ċ inline Ġfun Ġ< T > Ġcheck Then ( value : ĠBoolean , Ġblock : Ġ() Ġ-> ĠT ): ĠT Ġ= ĊĠ Ġcheck Then ( value , Ġ{ Ġ" Check Ġfailed ." Ġ}, Ġblock ) Ċ Ċ /** Ċ Ġ* ĠReturns Ġ` this ` Ġvalue Ġif Ġit Ġsatisfies Ġthe Ġgiven Ġ[ requis ite ] Ġor Ġthrows ĠIllegalArgumentException Ċ Ġ* Ġif Ġit Ġdoesn 't . Ċ Ġ*/ Ċ inline Ġfun Ġ< T > ĠT . take Require ( requis ite : ĠT . () Ġ-> ĠBoolean ): ĠT Ġ= ĊĠ Ġtake Require ( requis ite ) Ġ{ Ġ" Failed Ġrequirement ." Ġ} Ċ Ċ /** Ċ Ġ* ĠReturns Ġ` this ` Ġvalue Ġif Ġit Ġsatisfies Ġthe Ġgiven Ġ[ requis ite ] Ġor Ġthrows ĠIllegalArgumentException Ċ Ġ* Ġif Ġit Ġdoesn 't . Ċ Ġ*/ Ċ inline Ġfun Ġ< T > ĠT . take Require ( ĊĠ Ġrequis ite : ĠT . () Ġ-> ĠBoolean , ĊĠ Ġlazy Message : Ġ() Ġ-> ĠAny Ċ ): ĠT Ġ= Ġapply Ġ{ Ġrequire ( requis ite (), Ġlazy Message ) Ġ} Ċ Ċ /** Ċ Ġ* ĠReturns Ġ` this ` Ġvalue Ġif Ġit Ġsatisfies Ġthe Ġgiven Ġ[ requis ite ] Ġor Ġthrows ĠIllegalArgumentException Ċ Ġ* Ġif Ġit Ġdoesn 't . Ċ Ġ*/ Ċ inline Ġfun Ġ< T > ĠT . take Check ( requis ite : ĠT . () Ġ-> ĠBoolean ): ĠT Ġ= ĊĠ Ġtake Check ( requis ite ) Ġ{ Ġ" Failed Ġrequirement ." Ġ} Ċ Ċ /** Ċ Ġ* ĠReturns Ġ` this ` Ġvalue Ġif Ġit Ġsatisfies Ġthe Ġgiven Ġ[ requis ite ] Ġor Ġthrows ĠIllegalStateException Ċ Ġ* Ġif Ġit Ġdoesn 't . Ċ Ġ*/ Ċ inline Ġfun Ġ< T > ĠT . take Check ( ĊĠ Ġrequis ite : ĠT . () Ġ-> ĠBoolean , ĊĠ Ġlazy Message : Ġ() Ġ-> ĠAny Ċ ): ĠT Ġ= Ġapply Ġ{ Ġcheck ( requis ite (), Ġlazy Message ) Ġ} Ċ