Files
libpostal/src/trie_search.h

39 lines
1.0 KiB
C

#ifndef TRIE_SEARCH_H
#define TRIE_SEARCH_H
#ifdef __cplusplus
extern "C" {
#endif
#include "trie.h"
#include "collections.h"
#include "klib/kvec.h"
#include "log/log.h"
#include "string_utils.h"
#include "tokens.h"
#include "vector.h"
#include "utf8proc/utf8proc.h"
typedef struct phrase {
uint32_t start;
uint32_t len;
uint32_t data;
} phrase_t;
VECTOR_INIT(phrase_array, phrase_t)
phrase_array *trie_search(trie_t *self, char *text);
phrase_array *trie_search_from_index(trie_t *self, char *text, uint32_t start_node_id);
phrase_array *trie_search_tokens(trie_t *self, char *str, token_array *tokens);
phrase_array *trie_search_tokens_from_index(trie_t *self, char *str, token_array *tokens, uint32_t start_node_id);
phrase_t trie_search_suffixes_from_index(trie_t *self, char *word, uint32_t start_node_id);
phrase_t trie_search_suffixes(trie_t *self, char *word);
phrase_t trie_search_prefixes_from_index(trie_t *self, char *word, uint32_t start_node_id);
phrase_t trie_search_prefixes(trie_t *self, char *word);
#ifdef __cplusplus
}
#endif
#endif