def unpack(self, msg: Buffer):
     definition: OrderedDict = self.types[0].definition
     length = VarInt.unpack(msg)
     items = list(definition.items())
     res = self.types[0]()
     for _ in range(length):
         index = VarInt.unpack(msg)
         setattr(res, items[index][0], items[index][1].unpack(msg))
     return self(res)
 def unpack(self, msg: Buffer):
     obj = {}
     count = VarInt.unpack(msg)
     for _ in range(count):
         key = self.types[0].unpack(msg)
         value = self.types[1].unpack(msg)
         obj[key] = value
     return self(obj)
 def pack(self):
     definition: OrderedDict = self.types[0].definition
     values = []
     for i, item in enumerate(definition.items()):
         value = getattr(self.data, item[0], None)
         if value is not None:
             values.append((i, value))
     res = VarInt(len(values)).pack()
     for i, v in values:
         res.extend(VarInt(i).pack())
         res.extend(v.pack())
     return res
Beispiel #4
0
 def pack(self):
     return VarInt(self.id).pack()
Beispiel #5
0
 def unpack(cls, msg: Buffer):
     return cls(VarInt.unpack(msg))
 def pack(self):
     res = VarInt(len(self.data)).pack()
     for i in self.data:
         res.extend(i.pack())
     return res
 def unpack(self, msg: Buffer):
     obj = []
     count = VarInt.unpack(msg)
     for _ in range(count):
         obj.append(self.types[0].unpack(msg))
     return self(obj)
 def pack(self):
     res = VarInt(self.type).pack()
     res.extend(self.data.pack())
 def unpack(self, msg: Buffer):
     index = VarInt.unpack(msg)
     return self(self.types[index].unpack(msg))
Beispiel #10
0
 def pack(self):
     res = VarInt(len(self.data)).pack()
     for k, v in self.data.items():
         res.extend(k.pack())
         res.extend(v.pack())
     return res