| 3422 | |
| 3423 | # Fast Binary Encoding BalanceMessage final model |
| 3424 | class BalanceMessageFinalModel(fbe.Model): |
| 3425 | __slots__ = "_model", |
| 3426 | |
| 3427 | def __init__(self, buffer=None): |
| 3428 | super().__init__(buffer) |
| 3429 | self._model = FinalModelBalanceMessage(self.buffer, 8) |
| 3430 | |
| 3431 | # Get the model type |
| 3432 | @property |
| 3433 | def fbe_type(self): |
| 3434 | return self.TYPE |
| 3435 | |
| 3436 | TYPE = FinalModelBalanceMessage.TYPE |
| 3437 | |
| 3438 | # Check if the struct value is valid |
| 3439 | def verify(self): |
| 3440 | if (self.buffer.offset + self._model.fbe_offset) > self.buffer.size: |
| 3441 | return False |
| 3442 | |
| 3443 | fbe_struct_size = self.read_uint32(self._model.fbe_offset - 8) |
| 3444 | fbe_struct_type = self.read_uint32(self._model.fbe_offset - 4) |
| 3445 | if (fbe_struct_size <= 0) or (fbe_struct_type != self.fbe_type): |
| 3446 | return False |
| 3447 | |
| 3448 | return (8 + self._model.verify()) == fbe_struct_size |
| 3449 | |
| 3450 | # Serialize the struct value |
| 3451 | def serialize(self, value): |
| 3452 | fbe_initial_size = self.buffer.size |
| 3453 | |
| 3454 | fbe_struct_type = self.fbe_type |
| 3455 | fbe_struct_size = 8 + self._model.fbe_allocation_size(value) |
| 3456 | fbe_struct_offset = self.buffer.allocate(fbe_struct_size) - self.buffer.offset |
| 3457 | assert ((self.buffer.offset + fbe_struct_offset + fbe_struct_size) <= self.buffer.size), "Model is broken!" |
| 3458 | if (self.buffer.offset + fbe_struct_offset + fbe_struct_size) > self.buffer.size: |
| 3459 | return 0 |
| 3460 | |
| 3461 | fbe_struct_size = 8 + self._model.set(value) |
| 3462 | self.buffer.resize(fbe_initial_size + fbe_struct_size) |
| 3463 | |
| 3464 | self.write_uint32(self._model.fbe_offset - 8, fbe_struct_size) |
| 3465 | self.write_uint32(self._model.fbe_offset - 4, fbe_struct_type) |
| 3466 | |
| 3467 | return fbe_struct_size |
| 3468 | |
| 3469 | # Deserialize the struct value |
| 3470 | def deserialize(self, value=None): |
| 3471 | if value is None: |
| 3472 | value = BalanceMessage() |
| 3473 | |
| 3474 | assert ((self.buffer.offset + self._model.fbe_offset) <= self.buffer.size), "Model is broken!" |
| 3475 | if (self.buffer.offset + self._model.fbe_offset) > self.buffer.size: |
| 3476 | return BalanceMessage(), 0 |
| 3477 | |
| 3478 | fbe_struct_size = self.read_uint32(self._model.fbe_offset - 8) |
| 3479 | fbe_struct_type = self.read_uint32(self._model.fbe_offset - 4) |
| 3480 | assert ((fbe_struct_size > 0) and (fbe_struct_type == self.fbe_type)), "Model is broken!" |
| 3481 | if (fbe_struct_size <= 0) or (fbe_struct_type != self.fbe_type): |