Skip to content

Instantly share code, notes, and snippets.

@Drjacky
Created November 7, 2018 16:16
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save Drjacky/e6d4379087e2b163ca546b2c6f28dd4a to your computer and use it in GitHub Desktop.
A wrapper for data sources states
/**
* A wrapper for database and network states.
*/
sealed class ResultState<T> {
/**
* A state of [data] which shows that we know there is still an update to come.
*/
data class Loading<T>(val data: T) : ResultState<T>()
/**
* A state that shows the [data] is the last known update.
*/
data class Success<T>(val data: T) : ResultState<T>()
/**
* A state to show a [throwable] is thrown beside the [lastData] which is cached.
*/
data class Error<T>(val throwable: Throwable, val lastData: T?) : ResultState<T>()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment