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

commonMain.dev.inmo.micro_utils.repos.pagination.KeyValuePaginationExtensions.kt Maven / Gradle / Ivy

There is a newer version: 0.22.2
Show newest version
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.ReadKeyValueRepo

suspend inline fun > REPO.getAll(
    pagination: Pagination,
    @Suppress("REDUNDANT_INLINE_SUSPEND_FUNCTION_TYPE")
    crossinline methodCaller: suspend REPO.(Pagination) -> PaginationResult
): List> = getAllWithNextPaging(pagination) {
    val result = methodCaller(it)
    result.changeResultsUnchecked(
        result.results.mapNotNull { it to (get(it) ?: return@mapNotNull null) }
    )
}

suspend inline fun > REPO.getAll(
    @Suppress("REDUNDANT_INLINE_SUSPEND_FUNCTION_TYPE")
    crossinline methodCaller: suspend REPO.(Pagination) -> PaginationResult
): List> = getAll(maxPagePagination(), methodCaller)




© 2015 - 2024 Weber Informatics LLC | Privacy Policy