package dev.inmo.micro_utils.repos import dev.inmo.micro_utils.pagination.Pagination import dev.inmo.micro_utils.pagination.PaginationResult interface OneToManyReadKeyValueRepo : Repo { suspend fun get(k: Key, pagination: Pagination, reversed: Boolean = false): PaginationResult suspend fun keys(pagination: Pagination, reversed: Boolean = false): PaginationResult suspend fun contains(k: Key): Boolean suspend fun contains(k: Key, v: Value): Boolean suspend fun count(k: Key): Long suspend fun count(): Long } interface OneToManyWriteKeyValueRepo : Repo { suspend fun add(k: Key, v: Value) suspend fun remove(k: Key, v: Value) suspend fun clear(k: Key) } interface OneToManyKeyValueRepo : OneToManyReadKeyValueRepo, OneToManyWriteKeyValueRepo