# PaginatedIterable

class PaginatedIterable < T >(pageSize: Int , countGetter: () -> Long , paginationResultGetter: Pagination .() -> PaginationResult < T >) : Iterable < T > (source)

An iterable that lazily fetches items from a paginated data source. It creates a PaginatedIterator that automatically fetches pages as needed.

#### Parameters

pageSize

The size of each page to fetch

countGetter

A function that returns the total count of available items

paginationResultGetter

A function that fetches a page of results for a given pagination

#### Type Parameters

T

The type of items being iterated

## Constructors

PaginatedIterable
Link copied to clipboard
constructor(pageSize: Int , countGetter: () -> Long , paginationResultGetter: Pagination .() -> PaginationResult < T >)

## Functions

awaitFirst
Link copied to clipboard
suspend fun < T > Iterable <Deferred< T >>. awaitFirst (cancelOthers: Boolean = true): T

Trying to Deferred.await on all thiss. The first Deferred completed its work will interrupt all others awaits and, if cancelOthers passed as true (by default), will also cancel all the others Deferreds

suspend fun < T > Iterable <Deferred< T >>. awaitFirst (scope: CoroutineScope, cancelOnResult: Boolean = true): T

Trying to Deferred.await on all thiss. The first Deferred completed its work will interrupt all others awaits and, if cancelOnResult passed as true (by default), will also cancel all the others Deferreds

awaitFirstWithDeferred
Link copied to clipboard
suspend fun < T > Iterable <Deferred< T >>. awaitFirstWithDeferred (scope: CoroutineScope, cancelOnResult: Boolean = true): Pair <Deferred< T >, T >

Trying to Deferred.await on all thiss. The first Deferred completed its work will interrupt all others awaits and, if cancelOnResult passed as true (by default), will also cancel all the others Deferreds

calculateDiff
Link copied to clipboard
fun < T > Iterable < T >. calculateDiff (other: Iterable < T >, strictComparison: Boolean = false): Diff < T >
fun < T > Iterable < T >. calculateDiff (other: Iterable < T >, comparisonFun: ( T ?, T ?) -> Boolean ): Diff < T >

Calculating Diff object

calculateStrictDiff
Link copied to clipboard
inline fun < T > Iterable < T >. calculateStrictDiff (other: Iterable < T >): Diff < T >

This method call calculateDiff with strict mode enabled

diff
Link copied to clipboard
inline fun < T > Iterable < T >. diff (other: Iterable < T >, strictComparison: Boolean = false): Diff < T >
inline fun < T > Iterable < T >. diff (other: Iterable < T >, noinline comparisonFun: ( T ?, T ?) -> Boolean ): Diff < T >
firstNotNull
Link copied to clipboard
fun < T > Iterable < T ?>. firstNotNull (): T & Any

Returns the first non-null element in this iterable.

invokeFirstOf
Link copied to clipboard
suspend fun < O > Iterable < DeferredAction <*, O >>. invokeFirstOf (scope: CoroutineScope, cancelOnResult: Boolean = true): O

Invokes the first DeferredAction whose deferred value completes, executing its callback and returning the result. Other deferred actions are cancelled if cancelOnResult is true.

invokeOnFirst
Link copied to clipboard
suspend fun < T , O > Iterable <Deferred< T >>. invokeOnFirst (scope: CoroutineScope, cancelOnResult: Boolean = true, callback: suspend ( T ) -> O ): O

Awaits the first Deferred to complete and invokes the callback on its value. Other deferred values are cancelled if cancelOnResult is true.

iterator
Link copied to clipboard
open operator override fun iterator (): Iterator < T >
joinFirst
Link copied to clipboard
suspend fun Iterable <Job>. joinFirst (cancelOthers: Boolean = true): Job
suspend fun Iterable <Job>. joinFirst (scope: CoroutineScope, cancelOthers: Boolean = true): Job

Trying to Job.join on all thiss. The first Job completed its work will interrupt all others joins and, if cancelOthers passed as true (by default), will also cancel all the others Jobs

joinTo
Link copied to clipboard
inline fun < I > Iterable < I >. joinTo (separator: I ? = null, prefix: I ? = null, postfix: I ? = null): List < I >

Joins elements of this iterable into a list with a constant separator between elements. Optional prefix and postfix can be added to the result. Null separators are skipped.

inline fun < I > Iterable < I >. joinTo (separatorFun: ( I ) -> I ?, prefix: I ? = null, postfix: I ? = null): List < I >

Joins elements of this iterable into a list with separators between elements. Separators are generated using separatorFun. Optional prefix and postfix can be added to the result. Null values from separator function are skipped.

inline fun < I , R > Iterable < I >. joinTo (separator: R ? = null, prefix: R ? = null, postfix: R ? = null, transform: ( I ) -> R ?): List < R >

Joins elements of this iterable into a list with a constant separator between elements. Each element is transformed using transform. Optional prefix and postfix can be added to the result. Null values from transformations or separators are skipped.

inline fun < I , R > Iterable < I >. joinTo (separatorFun: ( I ) -> R ?, prefix: R ? = null, postfix: R ? = null, transform: ( I ) -> R ?): List < R >

Joins elements of this iterable into a list with separators between elements. Each element is transformed using transform, and separators are generated using separatorFun. Optional prefix and postfix can be added to the result. Null values from transformations or separator function are skipped.

mapNotNullA
Link copied to clipboard
inline fun < T , R > Iterable < T >. mapNotNullA (transform: ( T ) -> R ?): List < R >
optionallyReverse
Link copied to clipboard
fun < T > Iterable < T >. optionallyReverse (reverse: Boolean ): Iterable < T >

Optionally reverses this Iterable based on the reverse parameter. Delegates to specialized implementations for List and Set for better performance.

paginate
Link copied to clipboard
fun < T > Iterable < T >. paginate (with: Pagination ): PaginationResult < T >

Paginates this Iterable according to the given Pagination parameters. Returns a PaginationResult containing the items within the specified page range.

withReplaced
Link copied to clipboard
fun < T > Iterable < T >. withReplaced (t: T , block: ( T ) -> T ): List < T >

Returns a new list with the first occurrence of element t replaced by applying block to it. All other elements remain unchanged.

withReplacedAt
Link copied to clipboard
fun < T > Iterable < T >. withReplacedAt (i: Int , block: ( T ) -> T ): List < T >

Returns a new list with the element at index i replaced by applying block to it. All other elements remain unchanged.