code: func (q *QueryParam) encodeFilters() ([][]byte, error) {
  	var filters [][]byte
  
  	// Add the node filter
  	if len(q.FilterNodes) > 0 {
  		if buf, err := encodeFilter(filterNodeType, q.FilterNodes); err != nil {
  			return nil, err
  		} else {
  			filters = append(filters, buf)
  		}
  	}
  
  	// Add the tag filters
  	for tag, expr := range q.FilterTags {
  		filt := filterTag{tag, expr}
  		if buf, err := encodeFilter(filterTagType, &filt); err != nil {
  			return nil, err
  		} else {
  			filters = append(filters, buf)
  		}
  	}
  
  	return filters, nil
  }
docs: // encodeFilters is used to convert the filters into the wire format