generated from bitwarden/template
-
Notifications
You must be signed in to change notification settings - Fork 9
/
DataState.kt
48 lines (41 loc) · 1.06 KB
/
DataState.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package com.bitwarden.authenticator.data.platform.repository.model
/**
* A data state that can be used as a template for data in the repository layer.
*/
sealed class DataState<out T> {
/**
* Data that is being wrapped by [DataState].
*/
abstract val data: T?
/**
* Loading state that has no data is available.
*/
data object Loading : DataState<Nothing>() {
override val data: Nothing? get() = null
}
/**
* Loaded state that has data available.
*/
data class Loaded<T>(
override val data: T,
) : DataState<T>()
/**
* Pending state that has data available.
*/
data class Pending<T>(
override val data: T,
) : DataState<T>()
/**
* Error state that may have data available.
*/
data class Error<T>(
val error: Throwable,
override val data: T? = null,
) : DataState<T>()
/**
* No network state that may have data is available.
*/
data class NoNetwork<T>(
override val data: T? = null,
) : DataState<T>()
}