MCPcopy Create free account
hub / github.com/chronoxor/FastBinaryEncoding / StructEmptyModel

Class StructEmptyModel

projects/Python/proto/test.py:15824–15897  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15822
15823# Fast Binary Encoding StructEmpty model
15824class StructEmptyModel(fbe.Model):
15825 __slots__ = "_model",
15826
15827 def __init__(self, buffer=None):
15828 super().__init__(buffer)
15829 self._model = FieldModelStructEmpty(self.buffer, 4)
15830
15831 @property
15832 def model(self):
15833 return self._model
15834
15835 # Get the model size
15836 @property
15837 def fbe_size(self):
15838 return self._model.fbe_size + self._model.fbe_extra
15839
15840 # Get the model type
15841 @property
15842 def fbe_type(self):
15843 return self.TYPE
15844
15845 TYPE = FieldModelStructEmpty.TYPE
15846
15847 # Check if the struct value is valid
15848 def verify(self):
15849 if (self.buffer.offset + self._model.fbe_offset - 4) > self.buffer.size:
15850 return False
15851
15852 fbe_full_size = self.read_uint32(self._model.fbe_offset - 4)
15853 if fbe_full_size < self._model.fbe_size:
15854 return False
15855
15856 return self._model.verify()
15857
15858 # Create a new model (begin phase)
15859 def create_begin(self):
15860 fbe_begin = self.buffer.allocate(4 + self._model.fbe_size)
15861 return fbe_begin
15862
15863 # Create a new model (end phase)
15864 def create_end(self, fbe_begin):
15865 fbe_end = self.buffer.size
15866 fbe_full_size = fbe_end - fbe_begin
15867 self.write_uint32(self._model.fbe_offset - 4, fbe_full_size)
15868 return fbe_full_size
15869
15870 # Serialize the struct value
15871 def serialize(self, value):
15872 fbe_begin = self.create_begin()
15873 self._model.set(value)
15874 fbe_full_size = self.create_end(fbe_begin)
15875 return fbe_full_size
15876
15877 # Deserialize the struct value
15878 def deserialize(self, value=None):
15879 if value is None:
15880 value = StructEmpty()
15881

Callers 1

cloneMethod · 0.70

Calls

no outgoing calls

Tested by 1

cloneMethod · 0.56