add method

  1. @override
void add(
  1. T element
)
override

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);
}