/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠHyper De vs Ċ Ġ* Ċ Ġ* Ġ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 Ġmini Ċ Ċ import Ġjava . io . Closeable Ċ Ċ /** Ċ Ġ* ĠUtility Ġclass Ġto Ġallow Ġsplitting Ġ[ State Container ] Ġinto Ġchunks Ġso Ġnot Ġall Ġreduc ers Ġlive Ġin Ġthe Ġsame Ċ Ġ* Ġfile . Ċ Ġ* Ċ Ġ* ĠFrom Ġa Ġstate Ġcontainer Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* Ġclass ĠRed ucer Ġ: ĠNested State Container < State >() Ġ{ Ċ Ġ* ĠĠĠĠĠ Ġ@ Reducer Ċ Ġ* ĠĠĠĠĠ Ġfun Ġreduce One Action (...) Ċ Ġ* Ġ} Ċ Ġ* Ċ Ġ* Ġclass ĠMy Store Ġ{ Ċ Ġ* ĠĠĠĠĠ Ġval Ġreducer Ġ= ĠRed ucer ( this ) Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġinit Ġ{ Ċ Ġ* ĠĠĠĠĠĠĠĠĠ ĠMini . link ( dispatcher , ĠlistOf ( this , Ġreducer )) Ċ Ġ* ĠĠĠĠĠ Ġ} Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġ@ Reducer Ċ Ġ* ĠĠĠĠĠ Ġfun Ġglobal Reduce Fn (...) Ċ Ġ* Ġ} Ċ Ġ* Ġ``` Ċ Ġ*/ Ċ abstract Ġclass ĠNested State Container < S Ġ: ĠAny >( var Ġparent : ĠState Container < S >? Ġ= Ġnull ) Ġ: ĠState Container < S > Ġ{ ĊĠĠĠ Ġoverride Ġval Ġstate : ĠS ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġparent !!. state ĊĊĠĠĠ Ġoverride Ġfun ĠsetState ( newState : ĠS ) Ġ{ ĊĠĠĠĠĠĠĠ Ġparent !!. setState ( newState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsubscribe ( hot Start : ĠBoolean , Ġfn : Ġ( S ) Ġ-> ĠUnit ): ĠClose able Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġparent !!. subscribe ( hot Start , Ġfn ) ĊĠĠĠ Ġ} Ċ }