package com.convenient.android.common.media.config

/**
 * @classname:
 * @author: LiuXiaoLong
 * @date: 2022/8/2
 * description:
 */
object SortUtils {


    /**
     * 排序
     * T : 集合的数据类型
     * R : 要进行比较的字段
     * @param order 排序， 升序 降序
     * @param data 要排序的集合
     * @param selector 选择器，传入要排序的字段
     */
    fun <T, R : Comparable<R>> sort(order: MediaSortOrder, data: List<T>, selector: (T) -> R?): Sequence<T> {
        return when (order) {
            MediaSortOrder.ASC -> {
                data.asSequence().sortedBy(selector)
            }
            else -> data.asSequence().sortedByDescending(selector)
        }
    }



}