Compare commits

..

9 Commits

5 changed files with 29 additions and 4 deletions

View File

@@ -1,5 +1,17 @@
# Changelog
## 0.20.35
* `Versions`:
* `Coroutines`: `1.7.3` -> `1.8.0`
* `Material3`: `1.1.2` -> `1.2.0`
## 0.20.34
* `Repos`:
* `Common`:
* Improve default `set` realization of `KeyValuesRepo`
## 0.20.33
* `Colors`

View File

@@ -15,5 +15,5 @@ crypto_js_version=4.1.1
# Project data
group=dev.inmo
version=0.20.33
android_code_version=239
version=0.20.35
android_code_version=241

View File

@@ -2,7 +2,7 @@
kt = "1.9.22"
kt-serialization = "1.6.2"
kt-coroutines = "1.7.3"
kt-coroutines = "1.8.0"
kslog = "1.3.2"
@@ -35,7 +35,7 @@ android-appCompat = "1.6.1"
android-fragment = "1.6.2"
android-espresso = "3.5.1"
android-test = "1.1.5"
android-compose-material3 = "1.1.2"
android-compose-material3 = "1.2.0"
android-props-minSdk = "21"
android-props-compileSdk = "34"

View File

@@ -192,6 +192,10 @@ open class FullKeyValuesCacheRepo<Key,Value>(
}
}
override suspend fun set(toSet: Map<Key, List<Value>>) {
super<KeyValuesRepo>.set(toSet)
}
override suspend fun removeWithValue(v: Value) {
super<FullWriteKeyValuesCacheRepo>.removeWithValue(v)
}

View File

@@ -1,5 +1,6 @@
package dev.inmo.micro_utils.repos
import dev.inmo.micro_utils.common.diff
import dev.inmo.micro_utils.pagination.*
import dev.inmo.micro_utils.pagination.utils.doForAllWithNextPaging
import dev.inmo.micro_utils.pagination.utils.getAllWithNextPaging
@@ -130,6 +131,14 @@ interface KeyValuesRepo<Key, Value> : ReadKeyValuesRepo<Key, Value>, WriteKeyVal
remove(toRemove)
}
override suspend fun set(toSet: Map<Key, List<Value>>) {
toSet.forEach { (k, v) ->
val diff = getAll(k).diff(v)
remove(k, diff.removed.map { it.value })
add(k, diff.added.map { it.value })
}
}
}
typealias OneToManyKeyValueRepo<Key,Value> = KeyValuesRepo<Key, Value>