blob: 05086fa08eaefd91eb9da7502e02ac177cf96981 [file] [log] [blame]
/// A [List] proxy that you can subclass.
library list_proxy;
import 'dart:collection';
abstract class ListProxy<E> extends ListBase<E> {
/// The inner [List<T>] with the actual storage.
final List<E> _list = <E>[];
@override
bool remove(Object? element) => _list.remove(element);
@override
int get length => _list.length;
// From Iterable
@override
Iterator<E> get iterator => _list.iterator;
// From List
@override
E operator [](int index) => _list[index];
@override
operator []=(int index, E value) {
_list[index] = value;
}
@override
set length(int value) {
_list.length = value;
}
@override
void add(E element) {
_list.add(element);
}
@override
void insert(int index, E element) => _list.insert(index, element);
@override
void addAll(Iterable<E> iterable) {
_list.addAll(iterable);
}
@override
void insertAll(int index, Iterable<E> iterable) {
_list.insertAll(index, iterable);
}
@override
E removeAt(int index) => _list.removeAt(index);
@override
void removeRange(int start, int end) {
_list.removeRange(start, end);
}
}