#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