| classe interne KittenStoreImpl ( |
| réseau de val privé : réseau , |
| l' analyseur de val privé : analyseur |
| ) : KittenStore , DisposableScope par 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 { |
| fun load () : Peut - être < String > |
| } |
| |
| analyseur d' interface { |
| analyse amusante ( json : String ) : Peut - être < List < String >> |
| } |
| } |