message_encoder.py 588 B

12345678910111213141516171819202122
  1. from .message_coder import message_coder
  2. class message_encoder(message_coder):
  3. def __init__(self, target: message) -> None:
  4. self.__target = target
  5. @property
  6. def size(self) -> int:
  7. return self.__target.size + self.hash_size() + self.type_size()
  8. def code(self) -> bytes:
  9. result = self.__target.get_type().to_bytes(self.type_size())
  10. for count in self.__target.fields:
  11. result += count.encoder().code()
  12. result += self._get_hash(result)
  13. return result
  14. def __len__(self) -> int:
  15. return self.size