| classe interna KittenStoreImpl ( |
| rede val privada : Rede , |
| o privado val analisador : Analisador |
| ) : KittenStore , DisposableScope por DisposableScope () { |
| |
| private val helper = StoreHelper(State(), ::handleIntent, ::reduce).scope() |
| |
| override fun onNext(value: Intent) { |
| helper.onIntent(value) |
| } |
| |
| override fun subscribe(observer: ObservableObserver<State>) { |
| helper.subscribe(observer) |
| } |
| |
| private fun handleIntent(state: State, intent: Intent): Observable<Effect> = |
| when (intent) { |
| is Intent.Reload -> reload(network, parser) |
| } |
| |
| private fun reload(network: Network, parser: Parser): Observable<Effect> = |
| // Omitted code |
| |
| private fun reduce(state: State, effect: Effect): State = |
| // Omitted code |
| |
| private sealed class Effect { |
| // Omitted code |
| } |
| |
| interface Network { |
| divertido load () : talvez < String > |
| } |
| |
| Analisador de interface { |
| análise divertida ( json : String ) : Talvez < Lista < String >> |
| } |
| } |