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 _iterable = ArgumentError.checkNotNull(iterable);

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

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