public void writeToStream(OutputStream out, byte[] writeBuffer) throws IOException {
        if (baseObject instanceof byte[]) {
            int offsetInByteArray = (int) (Platform.BYTE_ARRAY_OFFSET - baseOffset);
            out.write((byte[]) baseObject, offsetInByteArray, sizeInBytes);
        } else {
            int dataRemaining = sizeInBytes;
            long rowReadPosition = baseOffset;
            while (dataRemaining > 0) {
                int toTransfer = Math.min(writeBuffer.length, dataRemaining);
                Platform.copyMemory(
                        baseObject, rowReadPosition, writeBuffer, Platform.BYTE_ARRAY_OFFSET, toTransfer);
                out.write(writeBuffer, 0, toTransfer);
                rowReadPosition += toTransfer;
                dataRemaining -= toTransfer;
            }
        }
    }
Write this UnsafeRow's underlying bytes to the given OutputStream.

@param out         the stream to write to.
@param writeBuffer a byte array for buffering chunks of off-heap data while writing to the
                   output stream. If this row is backed by an on-heap byte array, then this
                   buffer will not be used and may be null.
indexr-query-opt/src/main/java/io/indexr/query/row/UnsafeRow.java