insertTuple method

int insertTuple(
  1. Uint8List tuple
)

Implementation

int insertTuple(Uint8List tuple) {
  final needed = PageConst.slotSize + tuple.length;
  if (freeSpace < needed) return -1; // no space

  // Place tuple at top of free space (low address = bottom of page)
  final tupleOffset = freeEnd - tuple.length;
  _buf.setRange(tupleOffset, tupleOffset + tuple.length, tuple);

  // Write slot entry
  final slotOff = freeStart;
  _bd.setUint16(slotOff,     tupleOffset,          Endian.little);
  _bd.setUint16(slotOff + 2, tuple.length,         Endian.little);
  _buf[slotOff + 4] = PageConst.slotAlive;
  _buf[slotOff + 5] = 0; // reserved

  // Update header
  _setFreeStart(freeStart + PageConst.slotSize);
  _setFreeEnd(tupleOffset);
  _setSlotCount(slotCount + 1);

  _recomputeChecksum();
  return slotCount - 1;
}