summaryrefslogtreecommitdiffstats
path: root/src/lib-storage/mail-search-mime-register.h
blob: 70bd5fdabf359261cadf970f7bda9cdafccc6e9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#ifndef MAIL_SEARCH_MIME_REGISTER_H
#define MAIL_SEARCH_MIME_REGISTER_H

struct mail_search_mime_arg;
struct mail_search_mime_build_context;

struct mail_search_mime_register_arg {
	const char *key;

	/* returns parsed arg or NULL if error. error message is set to ctx->ctx. */
	struct mail_search_mime_arg *
		(*build)(struct mail_search_mime_build_context *ctx);
};

void mail_search_mime_register_deinit(void);

void mail_search_mime_register_add(
			      const struct mail_search_mime_register_arg *arg,
			      unsigned int count);

/* Return all registered args sorted. */
const struct mail_search_mime_register_arg *
mail_search_mime_register_get(unsigned int *count_r);

/* Find key's registered arg, or NULL if not found. */
const struct mail_search_mime_register_arg *
mail_search_mime_register_find(const char *key);


#endif