| 302 | |
| 303 | # Fast Binary Encoding State field model |
| 304 | class FieldModelState(fbe.FieldModel): |
| 305 | def __init__(self, buffer, offset): |
| 306 | super().__init__(buffer, offset) |
| 307 | |
| 308 | # Get the field size |
| 309 | @property |
| 310 | def fbe_size(self): |
| 311 | return 1 |
| 312 | |
| 313 | # Get the value |
| 314 | def get(self, defaults=None): |
| 315 | if defaults is None: |
| 316 | defaults = State() |
| 317 | |
| 318 | if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size: |
| 319 | return defaults |
| 320 | |
| 321 | return State(self.read_byte(self.fbe_offset)) |
| 322 | |
| 323 | # Set the value |
| 324 | def set(self, value): |
| 325 | assert ((self._buffer.offset + self.fbe_offset + self.fbe_size) <= self._buffer.size), "Model is broken!" |
| 326 | if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size: |
| 327 | return |
| 328 | |
| 329 | self.write_byte(self.fbe_offset, value) |
| 330 | |
| 331 | |
| 332 | # Fast Binary Encoding State final model |