code: func (c *Cursor) Seek(seek []byte) (key []byte, value []byte) {
  	k, v, flags := c.seek(seek)
  
  	// If we ended up after the last element of a page then move to the next one.
  	if ref := &c.stack[len(c.stack)-1]; ref.index >= ref.count() {
  		k, v, flags = c.next()
  	}
  
  	if k == nil {
  		return nil, nil
  	} else if (flags & uint32(bucketLeafFlag)) != 0 {
  		return k, nil
  	}
  	return k, v
  }
docs: // Seek moves the cursor to a given key and returns it.
  // If the key does not exist then the next key is used. If no keys
  // follow, a nil key is returned.
  // The returned key and value are only valid for the life of the transaction.