| 88 | |
| 89 | # Fast Binary Encoding EnumSimple final model |
| 90 | class FinalModelEnumSimple(fbe.FinalModel): |
| 91 | def __init__(self, buffer, offset): |
| 92 | super().__init__(buffer, offset) |
| 93 | |
| 94 | # Get the allocation size |
| 95 | # noinspection PyUnusedLocal |
| 96 | def fbe_allocation_size(self, value): |
| 97 | return self.fbe_size |
| 98 | |
| 99 | # Get the final size |
| 100 | @property |
| 101 | def fbe_size(self): |
| 102 | return 4 |
| 103 | |
| 104 | # Check if the value is valid |
| 105 | def verify(self): |
| 106 | if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size: |
| 107 | return sys.maxsize |
| 108 | |
| 109 | return self.fbe_size |
| 110 | |
| 111 | # Get the value |
| 112 | def get(self): |
| 113 | if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size: |
| 114 | return EnumSimple(), 0 |
| 115 | |
| 116 | return EnumSimple(self.read_int32(self.fbe_offset)), self.fbe_size |
| 117 | |
| 118 | # Set the value |
| 119 | def set(self, value): |
| 120 | assert ((self._buffer.offset + self.fbe_offset + self.fbe_size) <= self._buffer.size), "Model is broken!" |
| 121 | if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size: |
| 122 | return 0 |
| 123 | |
| 124 | self.write_int32(self.fbe_offset, value) |
| 125 | return self.fbe_size |
| 126 | |
| 127 | |
| 128 | class EnumTyped(enum.IntEnum, metaclass=fbe.DefaultEnumMeta): |