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

Class FinalModelStateEx

projects/Python/proto/protoex.py:356–391  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

354
355# Fast Binary Encoding StateEx final model
356class FinalModelStateEx(fbe.FinalModel):
357 def __init__(self, buffer, offset):
358 super().__init__(buffer, offset)
359
360 # Get the allocation size
361 # noinspection PyUnusedLocal
362 def fbe_allocation_size(self, value):
363 return self.fbe_size
364
365 # Get the final size
366 @property
367 def fbe_size(self):
368 return 1
369
370 # Check if the value is valid
371 def verify(self):
372 if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size:
373 return sys.maxsize
374
375 return self.fbe_size
376
377 # Get the value
378 def get(self):
379 if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size:
380 return StateEx(), 0
381
382 return StateEx(self.read_byte(self.fbe_offset)), self.fbe_size
383
384 # Set the value
385 def set(self, value):
386 assert ((self._buffer.offset + self.fbe_offset + self.fbe_size) <= self._buffer.size), "Model is broken!"
387 if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size:
388 return 0
389
390 self.write_byte(self.fbe_offset, value)
391 return self.fbe_size
392
393
394@functools.total_ordering

Callers 1

__init__Method · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected