diff options
Diffstat (limited to 'src/select/hash.h')
-rw-r--r-- | src/select/hash.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/select/hash.h b/src/select/hash.h index 06c27a9..2217cbd 100644 --- a/src/select/hash.h +++ b/src/select/hash.h @@ -10,6 +10,7 @@ #include <libwapcaplet/libwapcaplet.h> +#include <libcss/bloom.h> #include <libcss/errors.h> #include <libcss/functypes.h> @@ -18,7 +19,16 @@ struct css_selector; typedef struct css_selector_hash css_selector_hash; +struct css_hash_selection_requirments { + css_qname qname; /* Element name, or universal '*' */ + lwc_string *class; /* Name of class, or NULL */ + lwc_string *id; /* Name of id, or NULL */ + uint64_t media; /* Media type(s) we're selecting for */ + const css_bloom *node_bloom; /* Node's bloom filter */ +}; + typedef css_error (*css_selector_hash_iterator)( + const struct css_hash_selection_requirments *req, const struct css_selector **current, const struct css_selector ***next); @@ -32,18 +42,19 @@ css_error css__selector_hash_remove(css_selector_hash *hash, const struct css_selector *selector); css_error css__selector_hash_find(css_selector_hash *hash, - css_qname *qname, + const struct css_hash_selection_requirments *req, css_selector_hash_iterator *iterator, const struct css_selector ***matched); css_error css__selector_hash_find_by_class(css_selector_hash *hash, - lwc_string *name, + const struct css_hash_selection_requirments *req, css_selector_hash_iterator *iterator, const struct css_selector ***matched); css_error css__selector_hash_find_by_id(css_selector_hash *hash, - lwc_string *name, + const struct css_hash_selection_requirments *req, css_selector_hash_iterator *iterator, const struct css_selector ***matched); css_error css__selector_hash_find_universal(css_selector_hash *hash, + const struct css_hash_selection_requirments *req, css_selector_hash_iterator *iterator, const struct css_selector ***matched); |