from libcpp.vector cimport vector from libc.stdint cimport uint32_t from libc.stdint cimport int64_t from libc.stdint cimport int32_t from libc.stdint cimport uint64_t from .bits cimport BitArray, Code cdef struct Node: int32_t left int32_t right cdef class HuffmanCodec: cdef vector[Node] nodes cdef vector[Code] codes cdef Node root cdef readonly list leaves cdef readonly dict _map cpdef int encode_int32(self, int32_t[:] msg, BitArray bits) except -1 cpdef int decode_int32(self, BitArray bits, int32_t[:] msg) except -1