
commonMain.dev.inmo.micro_utils.repos.pagination.OneToManyPaginationExtensions.kt Maven / Gradle / Ivy
package dev.inmo.micro_utils.repos.pagination
import dev.inmo.micro_utils.common.toCoercedInt
import dev.inmo.micro_utils.pagination.*
import dev.inmo.micro_utils.pagination.utils.getAllWithNextPaging
import dev.inmo.micro_utils.repos.ReadKeyValuesRepo
suspend inline fun > REPO.getAll(
pagination: Pagination,
@Suppress("REDUNDANT_INLINE_SUSPEND_FUNCTION_TYPE")
crossinline methodCaller: suspend REPO.(Pagination) -> PaginationResult
): List>> = getAllWithNextPaging(pagination) {
val keysResult = methodCaller(it)
keysResult.changeResultsUnchecked(
keysResult.results.map { k ->
k to getAll(k)
}
)
}
suspend inline fun > REPO.getAll(
@Suppress("REDUNDANT_INLINE_SUSPEND_FUNCTION_TYPE")
crossinline methodCaller: suspend REPO.(Pagination) -> PaginationResult
): List>> = getAll(maxPagePagination(), methodCaller)
© 2015 - 2025 Weber Informatics LLC | Privacy Policy