writeVariableSizeElements static method
Tuple2<Uint8List, int>
writeVariableSizeElements(
- dynamic output,
- List elements,
- int alignment,
- int currentPos, [
- bool skipLastElementPadding = false,
])
Implementation
static Tuple2<Uint8List, int> writeVariableSizeElements(dynamic output, List elements, int alignment, int currentPos, [bool skipLastElementPadding = false]) {
for (var i = 0; i < elements.length; i++) {
var serializedElement = elements[i].serialize();
var elementSize = elements[i].size as int;
output.setRange(currentPos, currentPos + elementSize, serializedElement);
currentPos = currentPos + elementSize;
if (!skipLastElementPadding || elements.length - 1 != i) {
final alignedSize = alignUp(elementSize, alignment);
if (alignedSize - elements[i].size > 0) {
output.setRange(currentPos, currentPos + 1, List<int>.filled(alignedSize - elementSize, 0));
currentPos = currentPos + alignedSize - elementSize;
}
}
}
return Tuple2(output, currentPos);
}