single property Null safety
override
Checks that this iterable has only one element, and returns that element.
Throws a StateError if this
is empty or has more than one element.
Implementation
E get single {
// Note that this throws correctly if the queue is empty
// because reading the element of the sentinel throws.
if (identical(_sentinel._nextLink, _sentinel._previousLink)) {
DoubleLinkedQueueEntry<E> entry = _sentinel._nextLink!;
return entry._element as E;
}
throw IterableElementError.tooMany();
}