code: func (c *Client) Search(query string, all bool) ([]*Printer, error) {
  	var mr multipartRequest
  	mr.init()
  	if query != "" {
  		mr.WriteField("q", query)
  	}
  	if all {
  		mr.WriteField("connection_status", "ALL")
  	}
  	var resp printersResponse
  	err := jsonRPC(&c.auth, "POST", cloudprintURL+"/search", &mr, &resp)
  	if err != nil {
  		return nil, fmt.Errorf("Search: %v", err)
  	}
  	var list []*Printer
  	for _, desc := range resp.Printers {
  		list = append(list, desc.Printer())
  	}
  	return list, nil
  }
docs: // Search searches for printers the client can use.
  // The query can be empty to return all printers.
  // By default only printers that have been online recently are returned.
  // To return all printers, pass all = true.