30 lines
691 B
Kotlin
30 lines
691 B
Kotlin
package dev.inmo.micro_utils.pagination.utils
|
|
|
|
fun <T> Iterable<T>.optionallyReverse(reverse: Boolean): Iterable<T> = when (this) {
|
|
is List<T> -> optionallyReverse(reverse)
|
|
is Set<T> -> optionallyReverse(reverse)
|
|
else -> if (reverse) {
|
|
reversed()
|
|
} else {
|
|
this
|
|
}
|
|
}
|
|
fun <T> List<T>.optionallyReverse(reverse: Boolean): List<T> = if (reverse) {
|
|
reversed()
|
|
} else {
|
|
this
|
|
}
|
|
fun <T> Set<T>.optionallyReverse(reverse: Boolean): Set<T> = if (reverse) {
|
|
reversed().toSet()
|
|
} else {
|
|
this
|
|
}
|
|
|
|
inline fun <reified T> Array<T>.optionallyReverse(reverse: Boolean) = if (reverse) {
|
|
Array(size) {
|
|
get(lastIndex - it)
|
|
}
|
|
} else {
|
|
this
|
|
}
|