def decode(data): if hasattr(data, 'read'): buf = data else: buf = BytesIO(data) if buf.read(8) != node_t._get_packed_fingerprint(): raise ValueError("Decode error") return node_t._decode_one(buf)
def _encode_one(self, buf): buf.write(struct.pack(">i", self.num_children)) for i0 in range(self.num_children): assert self.children[i0]._get_packed_fingerprint() == node_t._get_packed_fingerprint() self.children[i0]._encode_one(buf)
def encode(self): buf = BytesIO() buf.write(node_t._get_packed_fingerprint()) self._encode_one(buf) return buf.getvalue()