package Ġcom . un happy choice . nor im aki . extension Ċ Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . subjects . Behavior Subject Ċ import Ġkotlin . reflect . K Property Ċ Ċ class ĠVariable < T >( value : ĠT ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġ_ value : ĠT Ġ= Ġvalue ĊĠĠĠ Ġprivate Ġval Ġ_ subject : ĠBehavior Subject < T > Ġ= ĠBehavior Subject . create Default ( value ) ĊĊĠĠĠ Ġvar Ġvalue : ĠT Ġby Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġoperator Ġfun ĠgetValue ( this Ref : ĠAny ?, Ġproperty : ĠK Property < *> ): ĠT Ġ= Ġ_ value ĊĊĠĠĠĠĠĠĠ Ġoperator Ġfun ĠsetValue ( this Ref : ĠAny ?, Ġproperty : ĠK Property <* >, Ġvalue : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ value Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ subject . onNext ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġas Observable (): ĠObservable < T > Ġ= Ġ_ subject ĊĊĠĠĠ Ġfun Ġfinalize () Ġ= Ġ_ subject . onComplete () Ċ }