add method
Adds an element to the list.
If the list is at capacity, removes the oldest element first. Triggers onElementRemoved if an element is removed. Triggers onElementAdded after the new element is added.
Implementation
@override
void add(T element) {
if (hasSpace) {
_items.add(element);
onElementAdded?.call(element);
return;
}
final removed = this[0];
onElementRemoved?.call(removed);
_items[_start] = element;
_start = (_start + 1) % capacity;
onElementAdded?.call(element);
}