| 3305 | |
| 3306 | # Fast Binary Encoding BalanceMessage final model |
| 3307 | class BalanceMessageFinalModel(fbe.Model): |
| 3308 | __slots__ = "_model", |
| 3309 | |
| 3310 | def __init__(self, buffer=None): |
| 3311 | super().__init__(buffer) |
| 3312 | self._model = FinalModelBalanceMessage(self.buffer, 8) |
| 3313 | |
| 3314 | # Get the model type |
| 3315 | @property |
| 3316 | def fbe_type(self): |
| 3317 | return self.TYPE |
| 3318 | |
| 3319 | TYPE = FinalModelBalanceMessage.TYPE |
| 3320 | |
| 3321 | # Check if the struct value is valid |
| 3322 | def verify(self): |
| 3323 | if (self.buffer.offset + self._model.fbe_offset) > self.buffer.size: |
| 3324 | return False |
| 3325 | |
| 3326 | fbe_struct_size = self.read_uint32(self._model.fbe_offset - 8) |
| 3327 | fbe_struct_type = self.read_uint32(self._model.fbe_offset - 4) |
| 3328 | if (fbe_struct_size <= 0) or (fbe_struct_type != self.fbe_type): |
| 3329 | return False |
| 3330 | |
| 3331 | return (8 + self._model.verify()) == fbe_struct_size |
| 3332 | |
| 3333 | # Serialize the struct value |
| 3334 | def serialize(self, value): |
| 3335 | fbe_initial_size = self.buffer.size |
| 3336 | |
| 3337 | fbe_struct_type = self.fbe_type |
| 3338 | fbe_struct_size = 8 + self._model.fbe_allocation_size(value) |
| 3339 | fbe_struct_offset = self.buffer.allocate(fbe_struct_size) - self.buffer.offset |
| 3340 | assert ((self.buffer.offset + fbe_struct_offset + fbe_struct_size) <= self.buffer.size), "Model is broken!" |
| 3341 | if (self.buffer.offset + fbe_struct_offset + fbe_struct_size) > self.buffer.size: |
| 3342 | return 0 |
| 3343 | |
| 3344 | fbe_struct_size = 8 + self._model.set(value) |
| 3345 | self.buffer.resize(fbe_initial_size + fbe_struct_size) |
| 3346 | |
| 3347 | self.write_uint32(self._model.fbe_offset - 8, fbe_struct_size) |
| 3348 | self.write_uint32(self._model.fbe_offset - 4, fbe_struct_type) |
| 3349 | |
| 3350 | return fbe_struct_size |
| 3351 | |
| 3352 | # Deserialize the struct value |
| 3353 | def deserialize(self, value=None): |
| 3354 | if value is None: |
| 3355 | value = BalanceMessage() |
| 3356 | |
| 3357 | assert ((self.buffer.offset + self._model.fbe_offset) <= self.buffer.size), "Model is broken!" |
| 3358 | if (self.buffer.offset + self._model.fbe_offset) > self.buffer.size: |
| 3359 | return BalanceMessage(), 0 |
| 3360 | |
| 3361 | fbe_struct_size = self.read_uint32(self._model.fbe_offset - 8) |
| 3362 | fbe_struct_type = self.read_uint32(self._model.fbe_offset - 4) |
| 3363 | assert ((fbe_struct_size > 0) and (fbe_struct_type == self.fbe_type)), "Model is broken!" |
| 3364 | if (fbe_struct_size <= 0) or (fbe_struct_type != self.fbe_type): |