blob: 5f5f1307f72c6840ec92c54e041660111d0f0fba [file]
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"
}