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

Class FinalModelEnumTyped

projects/Python/proto/test.py:198–233  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

196
197# Fast Binary Encoding EnumTyped final model
198class FinalModelEnumTyped(fbe.FinalModel):
199 def __init__(self, buffer, offset):
200 super().__init__(buffer, offset)
201
202 # Get the allocation size
203 # noinspection PyUnusedLocal
204 def fbe_allocation_size(self, value):
205 return self.fbe_size
206
207 # Get the final size
208 @property
209 def fbe_size(self):
210 return 1
211
212 # Check if the value is valid
213 def verify(self):
214 if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size:
215 return sys.maxsize
216
217 return self.fbe_size
218
219 # Get the value
220 def get(self):
221 if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size:
222 return EnumTyped(), 0
223
224 return EnumTyped(self.read_uint8(self.fbe_offset)), self.fbe_size
225
226 # Set the value
227 def set(self, value):
228 assert ((self._buffer.offset + self.fbe_offset + self.fbe_size) <= self._buffer.size), "Model is broken!"
229 if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size:
230 return 0
231
232 self.write_uint8(self.fbe_offset, value)
233 return self.fbe_size
234
235
236class EnumEmpty(enum.IntEnum, metaclass=fbe.DefaultEnumMeta):

Callers 1

__init__Method · 0.70

Calls

no outgoing calls

Tested by 1

__init__Method · 0.56