checkIterableContains<T extends Iterable> static method

T checkIterableContains<T extends Iterable>(
  1. T? iterable,
  2. T requiredElements, {
  3. String? name,
})

Throws if iterable is null, or if iterable does not contain every element of requiredElements.

If name is supplied, it is used as the parameter name in the error message.

Returns the iterable if it is not null and if it contains all elements of requiredElements.

Implementation

static T checkIterableContains<T extends Iterable<dynamic>>(
  T? iterable,
  T requiredElements, {
  String? name,
}) {
  final nonNullIterable = ArgumentError.checkNotNull(iterable);

  if (nonNullIterable.containsAll(requiredElements)) return nonNullIterable;

  throw ArgumentErrorUtils._value(
    nonNullIterable,
    name: name,
    message:
        "${name ?? "The iterable"} does not contain all required elements",
    extraMessage: "\nrequired elements:\n${requiredElements.join("\n")}\n\n"
        "${name ?? "iterable"}:\n${nonNullIterable.join("\n")}",
  );
}