MicroUtils/coroutines/src/commonMain/kotlin/dev/inmo/micro_utils/coroutines/DoInContext.kt

24 lines
573 B
Kotlin
Raw Normal View History

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
)