code: func (c *PrefixCursor) First() ([]byte, []byte) {
  	var k, v []byte
  
  	for k, v = c.C.First(); k != nil && !bytes.HasPrefix(k, c.Prefix); k, v = c.C.Next() {
  	}
  
  	if k == nil {
  		return nil, nil
  	}
  
  	if c.Reverse {
  		kc, vc := k, v
  		for ; kc != nil && bytes.HasPrefix(kc, c.Prefix); kc, vc = c.C.Next() {
  			k, v = kc, vc
  		}
  		if kc != nil {
  			k, v = c.C.Prev()
  		}
  	}
  
  	return k, v
  }
docs: // First element