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

Class FinalModelState

projects/Python/proto/proto.py:333–368  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

331
332# Fast Binary Encoding State final model
333class FinalModelState(fbe.FinalModel):
334 def __init__(self, buffer, offset):
335 super().__init__(buffer, offset)
336
337 # Get the allocation size
338 # noinspection PyUnusedLocal
339 def fbe_allocation_size(self, value):
340 return self.fbe_size
341
342 # Get the final size
343 @property
344 def fbe_size(self):
345 return 1
346
347 # Check if the value is valid
348 def verify(self):
349 if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size:
350 return sys.maxsize
351
352 return self.fbe_size
353
354 # Get the value
355 def get(self):
356 if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size:
357 return State(), 0
358
359 return State(self.read_byte(self.fbe_offset)), self.fbe_size
360
361 # Set the value
362 def set(self, value):
363 assert ((self._buffer.offset + self.fbe_offset + self.fbe_size) <= self._buffer.size), "Model is broken!"
364 if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size:
365 return 0
366
367 self.write_byte(self.fbe_offset, value)
368 return self.fbe_size
369
370
371@functools.total_ordering

Callers 1

__init__Method · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected