package Ġru . surf studio . android . core . mvp . binding . rx . load able . type Ċ Ċ import Ġio . reactivex . Observable Ċ import Ġru . surf studio . android . core . mvp . binding . rx . load able . data . Empty ErrorException Ċ Ċ /** Ċ Ġ* ĠÐ¢ Ð¸Ð¿ ĠÐ· Ð°Ð³ ÑĢÑĥÐ· ÐºÐ¸ ĠÐ´Ð°Ð½Ð½ÑĭÑħ ĠÑĥ ÑĢÐ¾Ð² Ð½Ñı ĠInter actor . Ċ Ġ* Ċ Ġ* ĠÐŀ ÑĤ ÑĢÐ°Ð¶ Ð°ÐµÑĤ ĠÑĨ Ð¸Ðº Ð» ĠÐ° Ñģ Ð¸Ð½ Ñħ ÑĢ Ð¾Ð½ Ð½Ð¾Ð¹ ĠÐ· Ð°Ð³ ÑĢÑĥÐ· ÐºÐ¸ ĠÐ´Ð°Ð½Ð½ÑĭÑħ : Ċ Ġ* Ġ 1 . ĠÐŁ Ð¾Ð» ÑĥÑĩ ÐµÐ½Ð¸Ðµ ĠÐ´Ð°Ð½Ð½ÑĭÑħ ĠÐ½Ð° Ñĩ Ð¸ Ð½Ð° ÐµÑĤÑģÑı ĠÑģ ĠÑģ Ð¾ÑģÑĤ Ð¾Ñı Ð½Ð¸ Ñı ĠÐ· Ð°Ð³ ÑĢÑĥÐ· ÐºÐ¸ Ġ[ Load Type . Loading ], Ċ Ġ* Ġ 2 . ĠÐŁ Ð¾ÑģÐ» Ðµ ĠÑįÑĤ Ð¾Ð³Ð¾ ĠÐ» Ð¸Ð± Ð¾ ĠÐ¿ÑĢÐ¸ ÑħÐ¾Ð´ ÑıÑĤ ĠÐ´Ð°Ð½ Ð½ÑĭÐµ Ġ[ Load Type . Data ], Ċ Ġ* Ġ 3 . ĠÐ Ľ Ð¸Ð± Ð¾ ĠÐ¿ÑĢÐ¸ ÑħÐ¾Ð´ Ð¸ÑĤ ĠÐ¾ÑĪÐ¸Ð± ÐºÐ° ĠÐ· Ð°Ð³ ÑĢÑĥÐ· ÐºÐ¸ ĠÐ´Ð°Ð½Ð½ÑĭÑħ Ġ[ Load Type . Error ] Ċ Ġ*/ Ċ sealed Ġclass ĠLoad Type < T > Ġ{ ĊĠĠĠ Ġclass ĠLoading < T > Ġ: ĠLoad Type < T >() ĊĠĠĠ Ġdata Ġclass ĠData < T >( val Ġdata : ĠT ) Ġ: ĠLoad Type < T >() ĊĠĠĠ Ġdata Ġclass ĠError < T >( val Ġerror : ĠThrowable Ġ= ĠEmpty ErrorException ()) Ġ: ĠLoad Type < T >() Ċ } Ċ Ċ /** Ċ Ġ* ĠÐł Ð°Ñģ ÑĪÐ¸ ÑĢ ÐµÐ½Ð¸Ðµ ĠÐ´Ð»Ñı ĠObservable , ĠÐ¿ÐµÑĢ ÐµÐ² Ð¾Ð´ Ñı Ñī ÐµÐµ ĠÐ° Ñģ Ð¸Ð½ Ñħ ÑĢ Ð¾Ð½ Ð½ÑĭÐ¹ ĠÐ·Ð°Ð¿ ÑĢÐ¾Ñģ ĠÐ· Ð°Ð³ ÑĢÑĥÐ· ÐºÐ¸ ĠÐ´Ð°Ð½Ð½ÑĭÑħ ĠÐº ĠObservable <[ Load Type ] >. Ċ Ġ*/ Ċ fun Ġ< T > ĠObservable < T >. map To Load Type (): ĠObservable < Load Type < T >> Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠLoad Type . Data ( it ) Ġas ĠLoad Type < T > Ġ} ĊĠĠĠĠĠĠĠ Ġ. start With ( Load Type . Loading ()) ĊĠĠĠĠĠĠĠ Ġ. onError Return Ġ{ Ġt : ĠThrowable Ġ-> ĠLoad Type . Error ( t ) Ġ}