| 706 | |
| 707 | # Fast Binary Encoding EnumUInt16 field model |
| 708 | class FieldModelEnumUInt16(fbe.FieldModel): |
| 709 | def __init__(self, buffer, offset): |
| 710 | super().__init__(buffer, offset) |
| 711 | |
| 712 | # Get the field size |
| 713 | @property |
| 714 | def fbe_size(self): |
| 715 | return 2 |
| 716 | |
| 717 | # Get the value |
| 718 | def get(self, defaults=None): |
| 719 | if defaults is None: |
| 720 | defaults = EnumUInt16() |
| 721 | |
| 722 | if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size: |
| 723 | return defaults |
| 724 | |
| 725 | return EnumUInt16(self.read_uint16(self.fbe_offset)) |
| 726 | |
| 727 | # Set the value |
| 728 | def set(self, value): |
| 729 | assert ((self._buffer.offset + self.fbe_offset + self.fbe_size) <= self._buffer.size), "Model is broken!" |
| 730 | if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size: |
| 731 | return |
| 732 | |
| 733 | self.write_uint16(self.fbe_offset, value) |
| 734 | |
| 735 | |
| 736 | # Fast Binary Encoding EnumUInt16 final model |