readArrayImpl static method
List
readArrayImpl(
- Uint8List buffer,
- ISerializable FactoryClass,
- dynamic accessor,
- bool shouldContinue(),
Implementation
static List readArrayImpl(Uint8List buffer, ISerializable FactoryClass, dynamic accessor, bool Function(int, Uint8List) shouldContinue) {
final elements = <ISerializable>[];
var previousElement;
var i = 0;
while (shouldContinue(i, buffer)) {
final element = FactoryClass.deserialize(buffer);
if (0 >= element.size) throw RangeError('element size has invalid size');
if (accessor != null && previousElement != null && 0 <= deepCompare(accessor(previousElement), accessor(element))) {
throw RangeError('elements in array are not sorted');
}
buffer = buffer.sublist(element.size);
elements.add(element);
previousElement = element;
++i;
}
return elements;
}