AutoDispose
AutoDispose copied to clipboard
Context receiver APIs
If compound extensions do make their way into Kotlin, we could leverage them nicely in AutoDispose to do something like this:
fun <T> ScopeProvider.Observable<T>.autoDispose() {
// ...
}
fun test(scope: ScopeProvider) = scope.apply {
myObservable
.autoDisposable()
.subscribe()
}
// or
class Worker : ScopeProvider {
fun run() {
workObservable
.autoDisposable()
.subscribe()
}
}
Note: this would supersede the need for #375
Closing this as it seems like it's not moving anywhere
context receivers are happening
Should be a very simple function:
// Original function
@CheckReturnValue
inline fun <T> Observable<T>.autoDispose(provider: ScopeProvider): ObservableSubscribeProxy<T> =
this.`as`(AutoDispose.autoDisposable(provider))
// Context receivers function
context(ScopeProvider)
inline fun <T> Observable<T>.autoDispose(): ObservableSubscribeProxy<T> = autoDispose(this@ScopeProvider)