$distinct<T> function

T? $distinct<T>(
  1. T value, [
  2. bool equals(
    1. T? a,
    2. T b
    )?
])

Implementation

T? $distinct<T>(T value, [bool equals(T? a, T b)?]) {
  final curr = $value<T?>(() => null);
  final shouldUpdate = curr.value == null ||
      !(equals?.call(curr.value, value) ?? curr.value == value);
  if (shouldUpdate) curr.value = value;
  return curr.value;
}