| 4832 | |
| 4833 | # Serialize the struct value |
| 4834 | def serialize(self, value): |
| 4835 | fbe_initial_size = self.buffer.size |
| 4836 | |
| 4837 | fbe_struct_type = self.fbe_type |
| 4838 | fbe_struct_size = 8 + self._model.fbe_allocation_size(value) |
| 4839 | fbe_struct_offset = self.buffer.allocate(fbe_struct_size) - self.buffer.offset |
| 4840 | assert ((self.buffer.offset + fbe_struct_offset + fbe_struct_size) <= self.buffer.size), "Model is broken!" |
| 4841 | if (self.buffer.offset + fbe_struct_offset + fbe_struct_size) > self.buffer.size: |
| 4842 | return 0 |
| 4843 | |
| 4844 | fbe_struct_size = 8 + self._model.set(value) |
| 4845 | self.buffer.resize(fbe_initial_size + fbe_struct_size) |
| 4846 | |
| 4847 | self.write_uint32(self._model.fbe_offset - 8, fbe_struct_size) |
| 4848 | self.write_uint32(self._model.fbe_offset - 4, fbe_struct_type) |
| 4849 | |
| 4850 | return fbe_struct_size |
| 4851 | |
| 4852 | # Deserialize the struct value |
| 4853 | def deserialize(self, value=None): |