Skip to content

Instantly share code, notes, and snippets.

@adam-arold
Created January 11, 2019 23:46
Show Gist options
  • Save adam-arold/a86e96673af4de775083e8e2608c0f60 to your computer and use it in GitHub Desktop.
Save adam-arold/a86e96673af4de775083e8e2608c0f60 to your computer and use it in GitHub Desktop.
class EventBus {
private val subscriptions =
mutableMapOf<KClass<out Any>, (Any) -> Unit>()
inline fun <reified T : Event> subscribe(
noinline callback: (T) -> Unit) {
return subscribe(
klass = T::class,
callback = callback)
}
fun <T : Event> subscribe(klass: KClass<T>,
callback: (T) -> Unit) {
subscriptions[klass] = callback as (Any) -> Unit
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment