ListMixin<E> typedef
Base mixin implementation of a List class.
ListMixin can be used as a mixin to make a class implement
the List interface.
This mixin implements all read operations using only the length and
operator[] and members. It implements write operations using those and
add, length= and operator[]=.
Classes using this mixin should implement those five operations.
NOTICE: For backwards compatibility reasons,
there is a default implementation of add
which only works for lists with a nullable element type.
For lists with a non-nullable element type,
the add method must be implemented.
NOTICE: Forwarding just the four length and [] read/write operations
to a normal growable List (as created by a [] literal)
will give very bad performance for add and addAll operations
of ListMixin.
These operations are implemented by
increasing the length of the list by one for each add operation,
and repeatedly increasing the length of a growable list is not efficient.
To avoid this, override 'add' and 'addAll' to also forward directly
to the growable list, or, if possible, use DelegatingList from
"package:collection/collection.dart" instead of a ListMixin.
Implementation
// TODO: @Deprecated("Use List instead")
typedef ListMixin<E> = ListBase<E>;