code: func (itr *limitIterator) Next() (rowID, columnID uint64, eof bool) {
  	// Always return EOF once it is reached by limit or the underlying iterator.
  	if itr.eof {
  		return 0, 0, true
  	}
  
  	// Retrieve pair from underlying iterator.
  	// Mark as EOF if it is beyond the limit (or at EOF).
  	rowID, columnID, eof = itr.itr.Next()
  	if eof || rowID > itr.maxRowID || (rowID == itr.maxRowID && columnID > itr.maxColumnID) {
  		itr.eof = true
  		return 0, 0, true
  	}
  
  	return rowID, columnID, false
  }
docs: // Next returns the next row/column ID pair.
  // If the underlying iterator returns a pair higher than the max then EOF is returned.