| 435 | |
| 436 | # Fast Binary Encoding FlagsSimple final model |
| 437 | class FinalModelFlagsSimple(fbe.FinalModel): |
| 438 | def __init__(self, buffer, offset): |
| 439 | super().__init__(buffer, offset) |
| 440 | |
| 441 | # Get the allocation size |
| 442 | # noinspection PyUnusedLocal |
| 443 | def fbe_allocation_size(self, value): |
| 444 | return self.fbe_size |
| 445 | |
| 446 | # Get the final size |
| 447 | @property |
| 448 | def fbe_size(self): |
| 449 | return 4 |
| 450 | |
| 451 | # Check if the value is valid |
| 452 | def verify(self): |
| 453 | if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size: |
| 454 | return sys.maxsize |
| 455 | |
| 456 | return self.fbe_size |
| 457 | |
| 458 | # Get the value |
| 459 | def get(self): |
| 460 | if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size: |
| 461 | return FlagsSimple(), 0 |
| 462 | |
| 463 | return FlagsSimple(self.read_int32(self.fbe_offset)), self.fbe_size |
| 464 | |
| 465 | # Set the value |
| 466 | def set(self, value): |
| 467 | assert ((self._buffer.offset + self.fbe_offset + self.fbe_size) <= self._buffer.size), "Model is broken!" |
| 468 | if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size: |
| 469 | return 0 |
| 470 | |
| 471 | self.write_int32(self.fbe_offset, value) |
| 472 | return self.fbe_size |
| 473 | |
| 474 | |
| 475 | class FlagsTyped(enum.IntFlag, metaclass=fbe.DefaultEnumMeta): |