alsoInvalidate, alsoDoInvalidate, singleSuspend, factorySuspend

This commit is contained in:
2025-03-14 14:13:58 +06:00
parent a4c6c367e3
commit 831bf44e34
6 changed files with 86 additions and 2 deletions

View File

@@ -1,5 +1,8 @@
package dev.inmo.micro_utils.repos.cache
import dev.inmo.micro_utils.coroutines.launchLoggingDropExceptions
import kotlinx.coroutines.CoroutineScope
interface InvalidatableRepo {
/**
* Invalidates its internal data. It __may__ lead to autoreload of data. In case when repo makes autoreload,
@@ -8,4 +11,14 @@ interface InvalidatableRepo {
suspend fun invalidate()
}
suspend fun <T : InvalidatableRepo> T.alsoInvalidate() = also {
invalidate()
}
fun <T : InvalidatableRepo> T.alsoDoInvalidate(scope: CoroutineScope) = also {
scope.launchLoggingDropExceptions {
invalidate()
}
}
typealias CacheRepo = InvalidatableRepo