view src/lib-fts/fts-filter-private.h @ 22711:25d4771ad0fd

lib-storage: mailbox_list_index - indentation cleanup
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Thu, 14 Dec 2017 02:10:27 +0200
parents 5f7da2341648
children
line wrap: on
line source

#ifndef FTS_FILTER_PRIVATE_H
#define FTS_FILTER_PRIVATE_H

#include "fts-filter.h"

#define FTS_FILTER_CLASSES_NR 6

/*
 API that stemming providers (classes) must provide: The create()
 function is called to get an instance of a registered filter class.
 The filter() function is called with tokens for the specific filter.
 The destroy function is called to destroy an instance of a filter.

*/
struct fts_filter_vfuncs {
	int (*create)(const struct fts_language *lang,
	              const char *const *settings,
	              struct fts_filter **filter_r,
	              const char **error_r);
	int (*filter)(struct fts_filter *filter, const char **token,
		      const char **error_r);

	void (*destroy)(struct fts_filter *filter);
};

struct fts_filter {
	const char *class_name; /* name of the class this is based on */
	struct fts_filter_vfuncs v;
	struct fts_filter *parent;
	string_t *token;
	size_t max_length;
	int refcount;
};

#endif