code: func (c *Cursor) Next() (key []byte, value []byte) {
  	_assert(c.bucket.tx.db != nil, "tx closed")
  	k, v, flags := c.next()
  	if (flags & uint32(bucketLeafFlag)) != 0 {
  		return k, nil
  	}
  	return k, v
  }
docs: // Next moves the cursor to the next item in the bucket and returns its key and value.
  // If the cursor is at the end of the bucket then a nil key and value are returned.
  // The returned key and value are only valid for the life of the transaction.