
commonMain.me.aartikov.replica.paged.PagedReplicaEvent.kt Maven / Gradle / Ivy
package me.aartikov.replica.paged
import me.aartikov.replica.common.LoadingReason
sealed interface PagedReplicaEvent> {
sealed interface LoadingEvent> : PagedReplicaEvent {
val reason: LoadingReason
data class LoadingStarted(
override val reason: LoadingReason
) : LoadingEvent
sealed interface LoadingFinished> : LoadingEvent {
data class Success>(
override val reason: LoadingReason,
val page: P
) : LoadingFinished
data class Canceled(
override val reason: LoadingReason,
) : LoadingFinished
data class Error(
override val reason: LoadingReason,
val exception: Exception
) : LoadingFinished
}
}
sealed interface FreshnessEvent : PagedReplicaEvent {
data object Freshened : FreshnessEvent
data object BecameStale : FreshnessEvent
}
data object ClearedEvent : PagedReplicaEvent
data class ObserverCountChangedEvent(
val count: Int,
val activeCount: Int,
val previousCount: Int,
val previousActiveCount: Int
) : PagedReplicaEvent
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy