mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2026-10-25 22:27:09 +00:00
add ReadStandardKeyValueRepo#keys with value parameter
This commit is contained in:
1 parent
3ba630684a
commit
5a9cabc4bd
12 files changed
+93
-13
No files matched your search
@@ -39,6 +39,18 @@ class ReadMapKeyValueRepo<Key, Value>(
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun keys(v: Value, pagination: Pagination, reversed: Boolean): PaginationResult<Key> {
|
||||
val keys: List<Key> = map.mapNotNull { (k, value) -> if (v == value) k else null }
|
||||
val actualPagination = if (reversed) pagination.reverse(keys.size) else pagination
|
||||
return keys.paginate(actualPagination).let {
|
||||
if (reversed) {
|
||||
it.copy(results = it.results.reversed())
|
||||
} else {
|
||||
it
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun contains(key: Key): Boolean = map.containsKey(key)
|
||||
|
||||
override suspend fun count(): Long = map.size.toLong()
|
||||
|
||||
Reference in new issue
Block a user