MCPcopy Create free account
hub / github.com/chronoxor/FastBinaryEncoding / FieldModelEnumByte

Class FieldModelEnumByte

projects/Python/proto/enums.py:60–85  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

58
59# Fast Binary Encoding EnumByte field model
60class FieldModelEnumByte(fbe.FieldModel):
61 def __init__(self, buffer, offset):
62 super().__init__(buffer, offset)
63
64 # Get the field size
65 @property
66 def fbe_size(self):
67 return 1
68
69 # Get the value
70 def get(self, defaults=None):
71 if defaults is None:
72 defaults = EnumByte()
73
74 if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size:
75 return defaults
76
77 return EnumByte(self.read_byte(self.fbe_offset))
78
79 # Set the value
80 def set(self, value):
81 assert ((self._buffer.offset + self.fbe_offset + self.fbe_size) <= self._buffer.size), "Model is broken!"
82 if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size:
83 return
84
85 self.write_byte(self.fbe_offset, value)
86
87
88# Fast Binary Encoding EnumByte final model

Callers 1

__init__Method · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected