| 814 | |
| 815 | # Fast Binary Encoding EnumInt32 field model |
| 816 | class FieldModelEnumInt32(fbe.FieldModel): |
| 817 | def __init__(self, buffer, offset): |
| 818 | super().__init__(buffer, offset) |
| 819 | |
| 820 | # Get the field size |
| 821 | @property |
| 822 | def fbe_size(self): |
| 823 | return 4 |
| 824 | |
| 825 | # Get the value |
| 826 | def get(self, defaults=None): |
| 827 | if defaults is None: |
| 828 | defaults = EnumInt32() |
| 829 | |
| 830 | if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size: |
| 831 | return defaults |
| 832 | |
| 833 | return EnumInt32(self.read_int32(self.fbe_offset)) |
| 834 | |
| 835 | # Set the value |
| 836 | def set(self, value): |
| 837 | assert ((self._buffer.offset + self.fbe_offset + self.fbe_size) <= self._buffer.size), "Model is broken!" |
| 838 | if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size: |
| 839 | return |
| 840 | |
| 841 | self.write_int32(self.fbe_offset, value) |
| 842 | |
| 843 | |
| 844 | # Fast Binary Encoding EnumInt32 final model |