package Ġcom . github . y am am oto j . sub sk ri ption Ċ Ċ import Ġrx . Observable Ċ import Ġrx . Subscription Ċ Ċ interface ĠAuto Un sub scri b able Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠExtension Ġfunction Ġfor Ġa Ġ[ Observable ] Ġto Ġadd Ġ[ Subscription ] Ġto Ġthis Ġ[ Auto Un sub scri b able ]. ĊĠĠĠĠ Ġ* ĠThe Ġ[ Subscription ] Ġwill Ġbe Ġsubscribed Ġon Ġ[ unsubscribe ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġ< T > ĠObservable < T >. auto Un subscribe (): ĠObservable < T > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠExtension Ġfunction Ġfor Ġa Ġ{@ link ĠObservable } Ġto Ġadd Ġ[ Subscription ] Ġto Ġthis Ġ[ Auto Un sub scri b able ] Ġwith Ġspecified Ġkey . ĊĠĠĠĠ Ġ* ĠThe Ġ[ Subscription ] Ġwill Ġbe Ġsubscribed Ġon Ġ[ unsubscribe ] Ġfor Ġthe Ġkey , Ġand Ġon Ġ[ unsubscribe ] Ġas Ġwell . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġ< T > ĠObservable < T >. auto Un subscribe ( key : ĠAny ): ĠObservable < T > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠExtension Ġfunction Ġfor Ġa Ġ[ Subscription ] Ġto Ġadd Ġitself Ġto Ġthis Ġ[ Auto Un sub scri b able ]. ĊĠĠĠĠ Ġ* ĠThe Ġ[ Subscription ] Ġwill Ġbe Ġsubscribed Ġon Ġ[ unsubscribe ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠSubscription . auto Un subscribe (): ĠUnit ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠExtension Ġfunction Ġfor Ġa Ġ[ Subscription ] Ġto Ġadd Ġitself Ġto Ġthis Ġ[ Auto Un sub scri b able ] Ġwith Ġspecified Ġkey . ĊĠĠĠĠ Ġ* ĠThe Ġ[ Subscription ] Ġwill Ġbe Ġun subscribed Ġon Ġ[ unsubscribe ] Ġfor Ġthe Ġkey , Ġand Ġon Ġ[ unsubscribe ] Ġas Ġwell . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠSubscription . auto Un subscribe ( key : ĠAny ): ĠUnit ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdd Ġ[ Subscription ] Ġto Ġthis Ġ[ Auto Un sub scri b able ]. ĊĠĠĠĠ Ġ* ĠThe Ġ[ Subscription ] Ġwill Ġbe Ġun subscribed Ġon Ġ[ unsubscribe ] Ġfor Ġthe Ġkey , Ġand Ġon Ġ[ unsubscribe ] Ġas Ġwell . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Subscription ( subscription : ĠSubscription ): ĠUnit ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdd Ġ[ Subscription ] Ġto Ġthis Ġ[ Auto Un sub scri b able ]. ĊĠĠĠĠ Ġ* ĠThe Ġ[ Subscription ] Ġwill Ġbe Ġun subscribed Ġon Ġ[ unsubscribe ] Ġfor Ġthe Ġkey , Ġand Ġon Ġ[ unsubscribe ] Ġas Ġwell . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Subscription ( subscription : ĠSubscription , Ġkey : ĠAny ): ĠUnit ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUn subscribe Ġsubscriptions Ġfor Ġspecified Ġkey . ĊĠĠĠĠ Ġ* ĠThis Ġwill Ġcall Ġ[ unsubscribe ] Ġfor Ġadded Ġ[ Auto Un sub scri b able ] Ġby Ġ[ add Auto Un sub scri b able ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġunsubscribe ( key : ĠAny ): ĠUnit ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUn subscribe Ġall Ġsubscriptions . ĊĠĠĠĠ Ġ* ĠThis Ġwill Ġunsubscribe Ġsubscriptions Ġwith Ġkey Ġas Ġwell . ĊĠĠĠĠ Ġ* ĠThis Ġwill Ġcall Ġ[ unsubscribe ] Ġfor Ġadded Ġ[ Auto Un sub scri b able ] Ġby Ġ[ add Auto Un sub scri b able ]. ĊĠĠĠĠ Ġ* ĠThis Ġwill Ġremove Ġall Ġ[ Auto Un sub scri b able ] s . ĊĠĠĠĠ Ġ* ĠWhen Ġthis Ġ[ Auto Un sub scri b able ] Ġis Ġadded Ġto Ġparent Ġby Ġ[ add Auto Un sub scri b able ], Ġthis Ġwill Ġremoved . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġunsubscribe (): ĠUnit ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdd Ġ[ Auto Un sub scri b able ] Ġto Ġthis Ġ[ Auto Un sub scri b able ]. ĊĠĠĠĠ Ġ* ĠWhen Ġ[ unsubscribe ] Ġis Ġcalled Ġfor Ġparent Ġ[ Auto Un sub scri b able ], Ġ[ unsubscribe ] Ġis Ġcall ded Ġfor Ġadd Ġ[ Auto Un sub scri b able ] Ġwith Ġor Ġwithout Ġkey . ĊĠĠĠĠ Ġ* ĠThe Ġadded Ġ[ Auto Un sub scri b able ] Ġis Ġremoved Ġfrom Ġparent Ġwhen Ġ[ unsubscribe ] Ġis Ġcalled Ġfor Ġparent Ġ[ Auto Un sub scri b able ] Ġwithout Ġspecified Ġkey . ĊĠĠĠĠ Ġ* ĠWhen Ġ[ unsubscribe ] Ġis Ġcalled Ġfor Ġadded Ġ[ Auto Un sub scri b able ] Ġwithout Ġspecified Ġkey , Ġit Ġremove Ġitself Ġfrom Ġparent Ġ[ Auto Un sub scri b able ] Ġas Ġwell . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Auto Un sub scri b able ( auto Un sub scri b able : ĠAuto Un sub scri b able ): ĠUnit ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemove Ġ[ Auto Un sub scri b able ] Ġfrom Ġparent Ġ[ Auto Un sub scri b able ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġremove Auto Un sub scri b able ( auto Un sub scri b able : ĠAuto Un sub scri b able ): ĠUnit Ċ } Ċ