readVariableSizeElements static method
List
readVariableSizeElements(
- Uint8List buffer,
- dynamic FactoryClass,
- int alignment, [
- bool skipLastElementPadding = false,
])
Implementation
static List readVariableSizeElements(Uint8List buffer, dynamic FactoryClass, int alignment, [bool skipLastElementPadding = false]) {
final elements = <dynamic>[];
while (0 < buffer.lengthInBytes) {
final element = FactoryClass.deserialize(buffer);
if (0 >= element.size) throw RangeError('element size has invalid size');
elements.add(element);
final alignedSize = (skipLastElementPadding && element.size >= buffer.lengthInBytes)
? element.size
: alignUp(element.size, alignment);
if (alignedSize > buffer.lengthInBytes) throw RangeError('unexpected buffer length');
buffer = buffer.sublist(alignedSize);
}
return elements;
}