ETrie 3 LIBEDATASERVER Library
ETrie A trie data structure.

## Synopsis

                ETrie;
    ETrie*      e_trie_new                      (gboolean icase);
    void        e_trie_free                     (ETrie *trie);
    void        e_trie_add                      (ETrie *trie,
                                                 const char *pattern,
                                                 int pattern_id);
    const char* e_trie_search                   (ETrie *trie,
                                                 const char *buffer,
                                                 size_t buflen,
                                                 int *matched_id);

## Description

## Details

### ETrie

    typedef struct _ETrie ETrie;

A trie data structure.

ETrie

### e_trie_new ()

    ETrie*      e_trie_new                      (gboolean icase);

Creates a new ETrie. If icase is `TRUE`, then pattern matching done by the ETrie will be case insensitive.

icase :

  Case sensitivity for the ETrie.

Returns :

  The newly-created ETrie.

e_trie_new

### e_trie_free ()

    void        e_trie_free                     (ETrie *trie);

Frees the memory associated with the ETrie trie.

trie :

  The ETrie to free.

e_trie_free

### e_trie_add ()

    void        e_trie_add                      (ETrie *trie,
                                                 const char *pattern,
                                                 int pattern_id);

Add a new pattern to the ETrie trie.

trie :

  The ETrie to add a pattern to.

pattern :

  The pattern to add.

pattern_id :

  The id to use for the pattern.

e_trie_add

### e_trie_search ()

    const char* e_trie_search                   (ETrie *trie,
                                                 const char *buffer,
                                                 size_t buflen,
                                                 int *matched_id);

Try to match the string buffer with a pattern in trie.

trie :

  The ETrie to search in.

buffer :

  The string to match against a pattern in trie.

buflen :

  The length of buffer.

matched_id :

  An integer address to store the matched pattern id in.

Returns :

  The matched pattern, or `NULL` if no pattern is matched.

e_trie_search