append method
Copies bytes into the arena and returns a reference to it.
Implementation
MemRef append(Uint8List bytes) {
final length = bytes.length;
if (length > _chunkSize) {
// Oversized document: give it its own chunk so it stays contiguous.
final chunk = Uint8List(length)..setRange(0, length, bytes);
_chunks.add(chunk);
_total += length;
return (chunk: _chunks.length - 1, offset: 0, length: length);
}
if (_current < 0 || _used + length > _chunkSize) {
_chunks.add(Uint8List(_chunkSize));
_current = _chunks.length - 1;
_used = 0;
}
final chunk = _chunks[_current];
final offset = _used;
chunk.setRange(offset, offset + length, bytes);
_used += length;
_total += length;
return (chunk: _current, offset: offset, length: length);
}