2015-07-16 23:19:29 +00:00
|
|
|
from libc.stdint cimport uint64_t
|
2015-07-27 19:16:49 +00:00
|
|
|
from libc.stdint cimport int32_t, uint32_t
|
2015-07-16 23:19:29 +00:00
|
|
|
|
|
|
|
ctypedef unsigned char uchar
|
|
|
|
|
|
|
|
|
|
|
|
cdef struct Code:
|
|
|
|
uint64_t bits
|
|
|
|
char length
|
|
|
|
|
|
|
|
|
|
|
|
cdef Code bit_append(Code code, bint bit) nogil
|
|
|
|
|
|
|
|
|
|
|
|
cdef class BitArray:
|
2015-07-24 01:48:23 +00:00
|
|
|
cdef bytearray data
|
2015-07-16 23:19:29 +00:00
|
|
|
cdef uchar byte
|
|
|
|
cdef uchar bit_of_byte
|
|
|
|
cdef uint32_t i
|
|
|
|
|
|
|
|
cdef int extend(self, uint64_t code, char n_bits) except -1
|
2015-07-17 19:20:48 +00:00
|
|
|
|
2015-07-27 19:16:49 +00:00
|
|
|
cpdef int32_t read32(self) except 0
|