Andreas Sinz
02/12/2018, 10:13 AMResponse
that can be available or not. Thats what `sealed class`es are all about
sealed class Response<out T> {
class Success<out T>(val payload: T) : Response<T>()
class Fail<out T>(val errorMessage: String): Response<T>()
}
//usage:
when(response) {
is Response.Success -> doSomething(response.payload) //Response is smartcasted to "Response.Success"
is Response.Fail -> doOtherThing(response.errorMessage)
}