Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import androidx.recyclerview.widget.DiffUtil
- import kotlin.reflect.KProperty1
- @Suppress("NOTHING_TO_INLINE")
- inline fun <T : Any> byProperty(kProperty: KProperty1<T, String>): (T, T) -> Boolean =
- { old, new -> kProperty.get(old) == kProperty.get(new) }
- @Suppress("FunctionName")
- inline fun <T : Any> DiffItemCallback(
- crossinline areItemsTheSame: (T, T) -> Boolean,
- crossinline areContentsTheSame: (T, T) -> Boolean = { old, new -> old == new }
- ) = object : DiffUtil.ItemCallback<T>() {
- override fun areItemsTheSame(oldItem: T, newItem: T) = areItemsTheSame(oldItem, newItem)
- override fun areContentsTheSame(oldItem: T, newItem: T) = areContentsTheSame(oldItem, newItem)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement