diff --git a/src/dawg.pyx b/src/dawg.pyx index 133c7fc..94ed327 100644 --- a/src/dawg.pyx +++ b/src/dawg.pyx @@ -86,7 +86,7 @@ cdef class DAWG: cpdef bint b_has_key(self, bytes key) except -1: return self.dct.Contains(key, len(key)) - cpdef bytes tobytes(self): + cpdef bytes tobytes(self) except +: """ Return raw DAWG content as bytes. """ @@ -176,6 +176,17 @@ cdef class DAWG: def _file_size(self): return self.dct.file_size() + + cpdef BaseType root(self): + return self.dct.root() + + cpdef (bint, BaseType) follow(self, unicode label, BaseType index): + cdef bytes _label = label.encode('utf8') + rs = self.dct.Follow(_label, &index) + return rs, index + + def has_value(self, index: BaseType) -> bool: + return self._has_value(index) cdef bint _has_value(self, BaseType index): return self.dct.has_value(index)