blob: 978ed51f82f9571a19d8db86ec4c87a50cf1ea21 [file]
class A
class C {
typealias TA = A
fun test(): TA = TA()
}
enum class Problem {
CONNECTION, AUTHENTICATION, UNKNOWN
}
sealed interface Status {
data object Loading: Status
data class Error(val problem: Problem, val isCritical: Boolean): Status
data class Ok(val info: List<String>): Status
}
fun render(status: Status): String = when (status) {
Status.Loading -> "loading"
is Status.Ok if status.info.isEmpty() -> "no data"
is Status.Ok -> status.info.joinToString()
is Status.Error if status.problem == Problem.CONNECTION -> "problems with connection"
is Status.Error if status.problem == Problem.AUTHENTICATION -> "could not be authenticated"
else -> "unknown problem"
}