ikt
06/27/2018, 9:26 AMsealed class Async_load_state<WaitT, ErrorT, DoneT> () {
class Wait<WaitT, ErrorT, DoneT>(val wait: WaitT): Async_load_state<WaitT, ErrorT, DoneT>() {}
class Error<WaitT, ErrorT, DoneT>(val error: ErrorT): Async_load_state<WaitT, ErrorT, DoneT>() {}
class Done<WaitT, ErrorT, DoneT>(val done: DoneT): Async_load_state<WaitT, ErrorT, DoneT>() {}
}
class Async_load<WaitT, ErrorT, DoneT> (
val w: WaitT,
f: Async_load<WaitT, ErrorT, DoneT>.(WaitT) -> Unit) {
var state = Async_load_state.Wait<WaitT, ErrorT, DoneT>(w)
init { f(w) }
fun is_done(): Boolean {
return when(state) {
is Async_load_state.Error<*, *, *> -> true
is Async_load_state.Done<*, *, *> -> true
else -> false
}
}
}
rook
06/27/2018, 3:35 PMsealed class AsyncLoadState() {
class Wait(val wait: WaitT) : AsyncLoadState()
class Error(val error: ErrorT) : AsyncLoadState()
class Done(val done: DoneT) : AsyncLoadState()
}