Package-level declarations

Functions

Link copied to clipboard
infix fun <T : Any> FetchFlow<T>.fetchOrDefault(default: T): Flow<T>
Link copied to clipboard
inline fun <T : Any> FetchFlow<T>.fetchOrElse(crossinline recover: suspend (Fetch<T>) -> T): Flow<T>
Link copied to clipboard
fun <T : Any> FetchFlow<T>.fetchOrNull(): Flow<T?>
Link copied to clipboard
fun <T : Any> FetchFlow<T>.fetchOrThrow(): Flow<T>
Link copied to clipboard
inline fun <T> FetchFlow<T & Any>.fetchUnwrap(crossinline recover: suspend (Fetch<T & Any>) -> T = { error("Fetch has not finished!") }): Flow<T>

Attempt to unwrap a FetchFlow to produce a Flow of it's result.

Link copied to clipboard
fun <T : Any> FetchFlow<T>.filterOnlyFinished(): Flow<T>

Filter a FetchFlow by isFinished, and map to the result.

Link copied to clipboard
inline fun <T : Any> FetchFlow<T>.flatMapFetching(crossinline transform: suspend () -> Fetch<T>): FetchFlow<T>

Convenience function to apply flatMapFetching inside a Flow.

Link copied to clipboard
inline fun <In : Any, Out : Any> FetchFlow<In>.flatMapFinished(crossinline transform: suspend (result: In) -> Fetch<Out>): FetchFlow<Out>

Convenience function to apply flatMapFinished inside a Flow.

Link copied to clipboard
inline fun <T : Any> FetchFlow<T>.flatMapInitial(crossinline transform: suspend () -> Fetch<T>): FetchFlow<T>

Convenience function to apply flatMapInitial inside a Flow.

Link copied to clipboard

Convenience function to apply flatten inside a Flow.

Link copied to clipboard
inline fun <T : Any, Output> FetchFlow<T>.fold(crossinline initial: suspend () -> Output, crossinline fetching: suspend () -> Output, crossinline finished: suspend (result: T) -> Output): Flow<Output>

Fold a FetchFlow into a Flow of Output.

Link copied to clipboard
inline fun <T : Any> FetchFlow<T>.mapFetchingToFinished(crossinline transform: suspend () -> T): FetchFlow<T>

Convenience function to apply mapFetchingToFinished inside a Flow.

Link copied to clipboard
inline fun <In : Any, Out : Any> FetchFlow<In>.mapFinished(crossinline transform: suspend (result: In) -> Out): FetchFlow<Out>

Convenience function to apply mapFinished inside a Flow.

Link copied to clipboard
inline fun <T : Any> FetchFlow<T>.mapInitialToFinished(crossinline transform: suspend () -> T): FetchFlow<T>

Convenience function to apply mapToFinished inside a Flow.

Link copied to clipboard
inline fun <In : Any, Out : Any> FetchFlow<In>.mapToFinished(crossinline initial: suspend () -> Out, crossinline fetching: suspend () -> Out, crossinline finished: suspend (result: In) -> Out): Flow<Fetch.Finished<Out>>

Convenience function to apply mapFetchingToFinished inside a Flow.

Link copied to clipboard
fun <T : Any> FetchFlow<T>.onEachFetch(initial: suspend Fetch.Initial.() -> Unit = {}, fetching: suspend Fetch.Fetching.() -> Unit = {}, fetched: suspend Fetch.Finished<T>.(T) -> Unit = {}): FetchFlow<T>

Perform non-mutating actions according to Fetch state on each flow emission.