From 08b87107729990a9d7fcf44ef7172940e4da47d5 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Tue, 19 Jan 2021 20:18:30 +0600 Subject: [PATCH] add asAction and several variants of oneOf --- .../extensions/behaviour_builder/Variants.kt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tgbotapi.extensions.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/Variants.kt b/tgbotapi.extensions.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/Variants.kt index 4289c347a5..63ed115bef 100644 --- a/tgbotapi.extensions.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/Variants.kt +++ b/tgbotapi.extensions.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/Variants.kt @@ -12,10 +12,20 @@ suspend fun BehaviourContext.parallel( inline infix fun Deferred.withAction(noinline callback: suspend (T) -> O) = DeferredAction(this, callback) -suspend fun BehaviourContext.oneOf( +inline fun Deferred.asAction() = DeferredAction(this) { it } + +suspend fun BehaviourContext.oneOfActions( deferredActions: Iterable> ) = deferredActions.invokeFirstOf(scope) -suspend fun BehaviourContext.oneOf( +suspend fun BehaviourContext.oneOfActions( vararg deferredActions: DeferredAction<*, O> +) = this@oneOfActions.oneOfActions(deferredActions.toList()) + +suspend fun BehaviourContext.oneOf( + deferredActions: Iterable> +) = oneOfActions(deferredActions.map { it.asAction() }) + +suspend fun BehaviourContext.oneOf( + vararg deferredActions: Deferred ) = oneOf(deferredActions.toList())