2020-11-10 11:09:14 +00:00
|
|
|
package dev.inmo.micro_utils.coroutines
|
|
|
|
|
2021-05-24 06:27:54 +00:00
|
|
|
import kotlinx.coroutines.*
|
2021-05-24 14:26:48 +00:00
|
|
|
import kotlin.coroutines.CoroutineContext
|
2020-11-10 11:09:14 +00:00
|
|
|
|
2021-05-24 14:26:48 +00:00
|
|
|
inline val UI
|
|
|
|
get() = Dispatchers.Main
|
|
|
|
inline val Default
|
|
|
|
get() = Dispatchers.Default
|
|
|
|
|
|
|
|
suspend inline fun <T> doIn(context: CoroutineContext, noinline block: suspend CoroutineScope.() -> T) = withContext(
|
|
|
|
context,
|
|
|
|
block
|
|
|
|
)
|
|
|
|
|
|
|
|
suspend inline fun <T> doInUI(noinline block: suspend CoroutineScope.() -> T) = doIn(
|
|
|
|
UI,
|
2020-11-10 11:09:14 +00:00
|
|
|
block
|
|
|
|
)
|
2021-05-24 14:26:48 +00:00
|
|
|
suspend inline fun <T> doInDefault(noinline block: suspend CoroutineScope.() -> T) = doIn(
|
|
|
|
Default,
|
2021-05-10 13:24:21 +00:00
|
|
|
block
|
|
|
|
)
|