code: public int append(ByteBuffer source) {
  		checkState(!isFinished());
  
  		int needed = source.remaining();
  		int available = getMaxCapacity() - positionMarker.getCached();
  		int toCopy = Math.min(needed, available);
  
  		memorySegment.put(positionMarker.getCached(), source, toCopy);
  		positionMarker.move(toCopy);
  		return toCopy;
  	}
docs: Append as many data as possible from {@code source}. Not everything might be copied if there is not enough
  space in the underlying {@link MemorySegment}
  
  @return number of copied bytes