equals method
Compare two elements for being equal.
This should be a proper equality relation.
Implementation
@override
bool equals(Iterable<E>? elements1, Iterable<E>? elements2) =>
switch ((elements1, elements2)) {
(var e1, var e2) when identical(e1, e2) => true,
(null, _) || (_, null) => false,
(Iterable<E> e1, Iterable<E> e2) => () {
final Iterator<E> it1 = e1.iterator;
final Iterator<E> it2 = e2.iterator;
while (true) {
final bool hasNext = it1.moveNext();
if (hasNext != it2.moveNext()) return false;
if (!hasNext) return true;
if (!_elementEquality.equals(it1.current, it2.current)) {
return false;
}
}
}()
};