package dev.inmo.micro_utils.repos import dev.inmo.micro_utils.pagination.Pagination import dev.inmo.micro_utils.pagination.PaginationResult import kotlinx.coroutines.flow.Flow interface StandardReadKeyValueRepo : Repo { suspend fun get(k: Key): Value? suspend fun values(pagination: Pagination, reversed: Boolean): PaginationResult suspend fun keys(pagination: Pagination, reversed: Boolean): PaginationResult suspend fun contains(key: Key): Boolean suspend fun count(): Long } interface StandardWriteKeyValueRepo : Repo { val onNewValue: Flow> val onValueRemoved: Flow suspend fun set(k: Key, v: Value) suspend fun unset(k: Key) } interface StandardKeyValueRepo : StandardReadKeyValueRepo, StandardWriteKeyValueRepo