Package-level declarations

Functions

Link copied to clipboard
fun <T1, T2, T3, T4, T5, T6, R> combine(flow: Flow<T1>, flow2: Flow<T2>, flow3: Flow<T3>, flow4: Flow<T4>, flow5: Flow<T5>, flow6: Flow<T6>, transform: suspend (T1, T2, T3, T4, T5, T6) -> R): Flow<R>
fun <T1, T2, T3, T4, T5, T6, T7, R> combine(flow: Flow<T1>, flow2: Flow<T2>, flow3: Flow<T3>, flow4: Flow<T4>, flow5: Flow<T5>, flow6: Flow<T6>, flow7: Flow<T7>, transform: suspend (T1, T2, T3, T4, T5, T6, T7) -> R): Flow<R>
fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, R> combine(flow: Flow<T1>, flow2: Flow<T2>, flow3: Flow<T3>, flow4: Flow<T4>, flow5: Flow<T5>, flow6: Flow<T6>, flow7: Flow<T7>, flow8: Flow<T8>, flow9: Flow<T9>, transform: suspend (T1, T2, T3, T4, T5, T6, T7, T8, T9) -> R): Flow<R>
Link copied to clipboard
fun combineAll(vararg flows: Flow<Boolean>): Flow<Boolean>
inline fun <T> combineAll(vararg flows: Flow<T>, crossinline f: (T) -> Boolean): Flow<Boolean>
Link copied to clipboard
fun combineAny(vararg flows: Flow<Boolean>): Flow<Boolean>
inline fun <T> combineAny(vararg flows: Flow<T>, crossinline f: (T) -> Boolean): Flow<Boolean>
Link copied to clipboard
fun <T1, T2> combineToPair(flow1: Flow<T1>, flow2: Flow<T2>): Flow<Pair<T1, T2>>
Link copied to clipboard
@JvmName(name = "flowCombineToPair")
fun <T1, T2> Flow<T1>.combineToPair(flow2: Flow<T2>): Flow<Pair<T1, T2>>
Link copied to clipboard
fun <T1, T2, T3> combineToTriple(flow1: Flow<T1>, flow2: Flow<T2>, flow3: Flow<T3>): Flow<Triple<T1, T2, T3>>
Link copied to clipboard
@JvmName(name = "flowCombineToPair")
fun <T1, T2, T3> Flow<T1>.combineToTriple(flow2: Flow<T2>, flow3: Flow<T3>): Flow<Triple<T1, T2, T3>>
Link copied to clipboard
@ExperimentalCoroutinesApi
fun <T> Flow<T>.conditionalDelay(shouldDelay: (value: T) -> Boolean, timeMillis: Long): Flow<T>

The function delays emitting if we need to pause when changing values.

Link copied to clipboard
@ExperimentalCoroutinesApi
fun <T> conflatedCallbackFlow(block: suspend ProducerScope<T>.() -> Unit): Flow<T>

Callback flow with Flow.conflate operator applied, does not suspend emitter if collector is slower. Internally uses buffer that only keeps the latest element and drops latest on buffer overflow.

Link copied to clipboard
fun CoroutineScope.invokeAfterDelay(milliseconds: Long, dispatcherIn: CoroutineContext = Dispatchers.IO, dispatcherOut: CoroutineContext = Dispatchers.Main, action: () -> Unit): Job
Link copied to clipboard
fun <A, B : Any> Flow<A>.pairWithLatestFrom(other: Flow<B>): Flow<Pair<A, B>>
Link copied to clipboard
suspend fun <T> suspendCoroutineWithTimeout(timeout: Long, block: (CancellableContinuation<T>) -> Unit): T?
Link copied to clipboard
fun <A, B : Any, R> Flow<A>.withLatestFrom(other: Flow<B>, transform: suspend (A, B) -> R): Flow<R>