checkIterableEqual<T extends Iterable> static method
T
checkIterableEqual<T extends Iterable>(})
Throws if iterable
is null
, or if the content of iterable
does not equal match
.
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 its
content equals match
.
Implementation
static T checkIterableEqual<T extends Iterable<dynamic>>(
T? iterable,
T match, {
bool checkOrder = false,
String? name,
}) {
final nonNullIterable = ArgumentError.checkNotNull(iterable);
final equality = checkOrder
? const DeepCollectionEquality()
: const DeepCollectionEquality.unordered();
if (equality.equals(nonNullIterable, match)) return nonNullIterable;
throw ArgumentErrorUtils._value(
nonNullIterable,
name: name,
message:
"${name ?? "The iterable"} does not have the same content as match",
extraMessage: "\nmatch:\n${match.join("\n")}\n\n"
"${name ?? "iterable"}:\n${nonNullIterable.join("\n")}",
);
}