uniqueBy<T, K, E> static method

Rule<Iterable<T>, E> uniqueBy<T, K, E>(
  1. K selector(
    1. T
    ), {
  2. required E error,
})

Validates that the collection has no duplicate items based on selector.

CollectionRules.uniqueBy((user) => user.email, error: 'Duplicate emails')

Implementation

static Rule<Iterable<T>, E> uniqueBy<T, K, E>(
  K Function(T) selector, {
  required E error,
}) =>
    PredicateRule(
      predicate: (value) {
        final keys = value.map(selector).toSet();
        return keys.length == value.length;
      },
      error: error,
    );