| 2362 | |
| 2363 | # Serialize the struct value |
| 2364 | def serialize(self, value): |
| 2365 | fbe_initial_size = self.buffer.size |
| 2366 | |
| 2367 | fbe_struct_type = self.fbe_type |
| 2368 | fbe_struct_size = 8 + self._model.fbe_allocation_size(value) |
| 2369 | fbe_struct_offset = self.buffer.allocate(fbe_struct_size) - self.buffer.offset |
| 2370 | assert ((self.buffer.offset + fbe_struct_offset + fbe_struct_size) <= self.buffer.size), "Model is broken!" |
| 2371 | if (self.buffer.offset + fbe_struct_offset + fbe_struct_size) > self.buffer.size: |
| 2372 | return 0 |
| 2373 | |
| 2374 | fbe_struct_size = 8 + self._model.set(value) |
| 2375 | self.buffer.resize(fbe_initial_size + fbe_struct_size) |
| 2376 | |
| 2377 | self.write_uint32(self._model.fbe_offset - 8, fbe_struct_size) |
| 2378 | self.write_uint32(self._model.fbe_offset - 4, fbe_struct_type) |
| 2379 | |
| 2380 | return fbe_struct_size |
| 2381 | |
| 2382 | # Deserialize the struct value |
| 2383 | def deserialize(self, value=None): |