All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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