#
offset_struct = struct.Struct('<I')
flags_struct = struct.Struct('<B')
- prefix_struct = struct.Struct('<H')
- prefix_length_struct = struct.Struct('<B')
+ prefix_struct = struct.Struct('<HB')
suffix_length_struct = struct.Struct('<B')
def __init__(self):
# Write the entries themselves
for e in self.entries:
if e.flags & ResultFlag.HAS_PREFIX:
- output += self.prefix_struct.pack(e.prefix)
- output += self.prefix_length_struct.pack(e.prefix_length)
+ output += self.prefix_struct.pack(e.prefix, e.prefix_length)
if e.flags & ResultFlag.HAS_SUFFIX:
output += self.suffix_length_struct.pack(e.suffix_length)
output += e.name.encode('utf-8')
flags = ResultFlag(ResultMap.flags_struct.unpack_from(serialized, i*4 + 3)[0])
extra = []
if flags & ResultFlag.HAS_PREFIX:
- extra += ['prefix={}[:{}]'.format(ResultMap.prefix_struct.unpack_from(serialized, offset)[0] & 0x00ffffff, ResultMap.prefix_length_struct.unpack_from(serialized, offset + 2)[0])]
- offset += 3
+ extra += ['prefix={}[:{}]'.format(*ResultMap.prefix_struct.unpack_from(serialized, offset))]
+ offset += ResultMap.prefix_struct.size
if flags & ResultFlag.HAS_SUFFIX:
extra += ['suffix_length={}'.format(ResultMap.suffix_length_struct.unpack_from(serialized, offset)[0])]
- offset += 1
+ offset += ResultMap.suffix_length_struct.size
if flags & ResultFlag.DEPRECATED:
extra += ['deprecated']
if flags & ResultFlag.DELETED: