package com.keylesspalace.tusky.appstore import io.reactivex.Observable import io.reactivex.subjects.PublishSubject interface Event interface Dispatchable : Event interface EventHub { val events: Observable fun dispatch(event: Dispatchable) } object EventHubImpl : EventHub { private val eventsSubject = PublishSubject.create() override val events: Observable = eventsSubject override fun dispatch(event: Dispatchable) { eventsSubject.onNext(event) } }