liminal
uli
suspend <T> fun loadData<T>(stateFlow: DataState, dataLoader: suspend () -> T) { try { if (stateFlow.value == DataState.Loading) return stateFlow.value = DataState.Loading val result = dataLoader() stateFlow.value = DataState.Loaded(result) } catch (t: Throwable) { stateFlow.value = DataState.Error(t) } }
val topRatedMoviesDataState : DataState<List<Movie>> suspend fun loadTopRatedMovies() { loadData(topRatedMoviesDataState, ::loadTopRatedMoviesFromNetwork) }
A modern programming language that makes developers happier.