summaryrefslogtreecommitdiff
path: root/python/src/sa/str_map.pxi
blob: 3a8439a404867e1c7a30c1164ae1575cfc54de8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
cdef extern from "strmap.h":
    ctypedef struct StrMap
    StrMap* stringmap_new()
    void stringmap_delete(StrMap *vocab)
    int stringmap_index(StrMap *vocab, char *s)
    char* stringmap_word(StrMap *vocab, int i)

cdef class StringMap:
    cdef StrMap *vocab
    cdef char *word(self, int i)
    cdef int index(self, char *s)

    def __cinit__(self):
        self.vocab = stringmap_new()

    def __dealloc__(self):
        stringmap_delete(self.vocab)
        
    cdef char *word(self, int i):
        return stringmap_word(self.vocab, i)

    cdef int index(self, char *s):
        return stringmap_index(self.vocab, s)