All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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