code: func (ctx *bytesKeyValIterator) GetNext() (val keyval.BytesKeyVal, stop bool) {
  	if ctx.index >= ctx.len {
  		return nil, true
  	}
  
  	key := string(ctx.resp.Kvs[ctx.index].Key)
  	data := ctx.resp.Kvs[ctx.index].Value
  	rev := ctx.resp.Kvs[ctx.index].ModRevision
  
  	var prevValue []byte
  	if len(ctx.resp.Kvs) > 0 && ctx.index > 0 {
  		prevValue = ctx.resp.Kvs[ctx.index-1].Value
  	}
  
  	ctx.index++
  
  	return &bytesKeyVal{key, data, prevValue, rev}, false
  }
docs: // GetNext returns the following item from the result set.
  // When there are no more items to get, <stop> is returned as *true* and <val>
  // is simply *nil*.