| 15822 | |
| 15823 | # Fast Binary Encoding StructEmpty model |
| 15824 | class 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 | |