
commonMain.me.aartikov.replica.single.Loadable.kt Maven / Gradle / Ivy
package me.aartikov.replica.single
import me.aartikov.replica.common.AbstractLoadable
import me.aartikov.replica.common.CombinedLoadingError
/**
* Replica state that can be observed on a UI.
* In opposite to [ReplicaState] this class contains very limited set of fields.
*/
data class Loadable(
override val loading: Boolean = false,
override val data: T? = null,
override val error: CombinedLoadingError? = null
) : AbstractLoadable
/**
* Transforms data with a [transform] functions.
*/
fun Loadable.mapData(transform: (T) -> R): Loadable {
return Loadable(
loading = loading,
data = data?.let { transform(it) },
error = error
)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy