From 41c86b67f3f1fe320e702b05887f22188a5b42fc Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Thu, 28 Sep 2023 01:29:24 +0530 Subject: refactor: use `runSuspendCatching` from `kotlin-result` --- .../util/coroutines/RunSuspendCatching.kt | 51 ---------------------- 1 file changed, 51 deletions(-) delete mode 100644 coroutine-utils/src/main/kotlin/app/passwordstore/util/coroutines/RunSuspendCatching.kt (limited to 'coroutine-utils/src') diff --git a/coroutine-utils/src/main/kotlin/app/passwordstore/util/coroutines/RunSuspendCatching.kt b/coroutine-utils/src/main/kotlin/app/passwordstore/util/coroutines/RunSuspendCatching.kt deleted file mode 100644 index 677c2bc3..00000000 --- a/coroutine-utils/src/main/kotlin/app/passwordstore/util/coroutines/RunSuspendCatching.kt +++ /dev/null @@ -1,51 +0,0 @@ -@file:OptIn(ExperimentalContracts::class) -@file:Suppress("RedundantSuspendModifier") - -package app.passwordstore.util.coroutines - -import com.github.michaelbull.result.Err -import com.github.michaelbull.result.Ok -import com.github.michaelbull.result.Result -import kotlin.contracts.ExperimentalContracts -import kotlin.contracts.InvocationKind -import kotlin.contracts.contract -import kotlinx.coroutines.CancellationException - -/** - * Calls the specified function [block] and returns its encapsulated result if invocation was - * successful, catching any [Throwable] except [CancellationException] that was thrown from the - * [block] function execution and encapsulating it as a failure. - */ -@OptIn(ExperimentalContracts::class) -public suspend inline fun runSuspendCatching(block: () -> V): Result { - contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) } - - return try { - Ok(block()) - } catch (e: CancellationException) { - throw e - } catch (e: Throwable) { - Err(e) - } -} - -/** - * Calls the specified function [block] with [this] value as its receiver and returns its - * encapsulated result if invocation was successful, catching any [Throwable] except - * [CancellationException] that was thrown from the [block] function execution and encapsulating it - * as a failure. - */ -@OptIn(ExperimentalContracts::class) -public suspend inline infix fun T.runSuspendCatching( - block: T.() -> V -): Result { - contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) } - - return try { - Ok(block()) - } catch (e: CancellationException) { - throw e - } catch (e: Throwable) { - Err(e) - } -} -- cgit v1.2.3