## e-book-query

e-book-query — Handles queries of addressboook data.

## Synopsis

    typedef             EBookQuery;
    enum                EBookQueryTest;
    EBookQuery*         e_book_query_from_string            (const char *query_string);
    char*               e_book_query_to_string              (EBookQuery *q);
    EBookQuery*         e_book_query_ref                    (EBookQuery *q);
    void                e_book_query_unref                  (EBookQuery *q);
    EBookQuery*         e_book_query_and                    (int nqs,
                                                             EBookQuery **qs,
                                                             gboolean unref);
    EBookQuery*         e_book_query_andv                   (EBookQuery *q,
                                                             ...);
    EBookQuery*         e_book_query_or                     (int nqs,
                                                             EBookQuery **qs,
                                                             gboolean unref);
    EBookQuery*         e_book_query_orv                    (EBookQuery *q,
                                                             ...);
    EBookQuery*         e_book_query_not                    (EBookQuery *q,
                                                             gboolean unref);
    EBookQuery*         e_book_query_field_exists           (EContactField field);
    EBookQuery*         e_book_query_vcard_field_exists     (const char *field);
    EBookQuery*         e_book_query_field_test             (EContactField field,
                                                             EBookQueryTest test,
                                                             const char *value);
    EBookQuery*         e_book_query_vcard_field_test       (const char *field,
                                                             EBookQueryTest test,
                                                             const char *value);
    EBookQuery*         e_book_query_any_field_contains     (const char *value);
    EBookQuery*         e_book_query_copy                   (EBookQuery *q);

## Description

## Details

### EBookQuery

    typedef struct EBookQuery EBookQuery;

### enum EBookQueryTest

    typedef enum {
      E_BOOK_QUERY_IS,
      E_BOOK_QUERY_CONTAINS,
      E_BOOK_QUERY_BEGINS_WITH,
      E_BOOK_QUERY_ENDS_WITH,

      /*
        Consider these "coming soon".

        E_BOOK_QUERY_LT,
        E_BOOK_QUERY_LE,
        E_BOOK_QUERY_GT,
        E_BOOK_QUERY_GE,
        E_BOOK_QUERY_EQ,
      */
    } EBookQueryTest;

### e_book_query_from_string ()

    EBookQuery*         e_book_query_from_string            (const char *query_string);

`query_string` : |
Returns : |

### e_book_query_to_string ()

    char*               e_book_query_to_string              (EBookQuery *q);

`q` : |
Returns : |

### e_book_query_ref ()

    EBookQuery*         e_book_query_ref                    (EBookQuery *q);

`q` : |
Returns : |

### e_book_query_unref ()

    void                e_book_query_unref                  (EBookQuery *q);

`q` : |

### e_book_query_and ()

    EBookQuery*         e_book_query_and                    (int nqs,
                                                             EBookQuery **qs,
                                                             gboolean unref);

`nqs` : |
`qs` : |
`unref` : |
Returns : |

### e_book_query_andv ()

    EBookQuery*         e_book_query_andv                   (EBookQuery *q,
                                                             ...);

`q` : |
`...` : |
Returns : |

### e_book_query_or ()

    EBookQuery*         e_book_query_or                     (int nqs,
                                                             EBookQuery **qs,
                                                             gboolean unref);

`nqs` : |
`qs` : |
`unref` : |
Returns : |

### e_book_query_orv ()

    EBookQuery*         e_book_query_orv                    (EBookQuery *q,
                                                             ...);

`q` : |
`...` : |
Returns : |

### e_book_query_not ()

    EBookQuery*         e_book_query_not                    (EBookQuery *q,
                                                             gboolean unref);

`q` : |
`unref` : |
Returns : |

### e_book_query_field_exists ()

    EBookQuery*         e_book_query_field_exists           (EContactField field);

`field` : |
Returns : |

### e_book_query_vcard_field_exists ()

    EBookQuery*         e_book_query_vcard_field_exists     (const char *field);

`field` : |
Returns : |

### e_book_query_field_test ()

    EBookQuery*         e_book_query_field_test             (EContactField field,
                                                             EBookQueryTest test,
                                                             const char *value);

`field` : |
`test` : |
`value` : |
Returns : |

### e_book_query_vcard_field_test ()

    EBookQuery*         e_book_query_vcard_field_test       (const char *field,
                                                             EBookQueryTest test,
                                                             const char *value);

`field` : |
`test` : |
`value` : |
Returns : |

### e_book_query_any_field_contains ()

    EBookQuery*         e_book_query_any_field_contains     (const char *value);

`value` : |
Returns : |

### e_book_query_copy ()

    EBookQuery*         e_book_query_copy                   (EBookQuery *q);

`q` : |
Returns : |