code: public void setBytes(int index, Slice source, int sourceIndex, int length)
      {
          checkIndexLength(index, length);
          checkPositionIndexes(sourceIndex, sourceIndex + length, source.length());
  
          copyMemory(source.base, source.address + sourceIndex, base, address + index, length);
      }
docs: Transfers data from the specified slice into this buffer starting at
  the specified absolute {@code index}.
  
  @param sourceIndex the first index of the source
  @param length the number of bytes to transfer
  @throws IndexOutOfBoundsException if the specified {@code index} is less than {@code 0},
  if the specified {@code sourceIndex} is less than {@code 0},
  if {@code index + length} is greater than
  {@code this.length()}, or
  if {@code sourceIndex + length} is greater than
  {@code source.length()}