code: func (db *Database) followCursor(ctx context.Context, r Response) ([]byte, error) {
  	// If the result only has one page
  	if !r.HasMore() {
  		if len(r.RawResult()) != 0 {
  			// Parsed result is not empty, so return this
  			return r.RawResult(), nil
  		}
  		// Return the raw result
  		return r.Raw(), nil
  	}
  
  	buf := bytes.NewBuffer(r.RawResult()[:len(r.RawResult())-1])
  	buf.WriteRune(',')
  
  	q := &requests.FollowCursor{Cursor: r.Cursor()}
  	var err error
  
  	for r.HasMore() {
  		r, err = db.Send(ctx, q)
  		if err != nil {
  			return nil, err
  		}
  		buf.Write(r.RawResult()[1 : len(r.RawResult())-1])
  		buf.WriteRune(',')
  	}
  
  	buf.Truncate(buf.Len() - 1)
  	buf.WriteRune(']')
  
  	return buf.Bytes(), nil
  }
docs: // followCursor follows the cursor of the given response and returns
  // all elements of every batch returned by the database.