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

Class FinalModelFlagsSimple

projects/Python/proto/test.py:437–472  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

435
436# Fast Binary Encoding FlagsSimple final model
437class FinalModelFlagsSimple(fbe.FinalModel):
438 def __init__(self, buffer, offset):
439 super().__init__(buffer, offset)
440
441 # Get the allocation size
442 # noinspection PyUnusedLocal
443 def fbe_allocation_size(self, value):
444 return self.fbe_size
445
446 # Get the final size
447 @property
448 def fbe_size(self):
449 return 4
450
451 # Check if the value is valid
452 def verify(self):
453 if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size:
454 return sys.maxsize
455
456 return self.fbe_size
457
458 # Get the value
459 def get(self):
460 if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size:
461 return FlagsSimple(), 0
462
463 return FlagsSimple(self.read_int32(self.fbe_offset)), self.fbe_size
464
465 # Set the value
466 def set(self, value):
467 assert ((self._buffer.offset + self.fbe_offset + self.fbe_size) <= self._buffer.size), "Model is broken!"
468 if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size:
469 return 0
470
471 self.write_int32(self.fbe_offset, value)
472 return self.fbe_size
473
474
475class FlagsTyped(enum.IntFlag, metaclass=fbe.DefaultEnumMeta):

Callers 7

__init__Method · 0.70
__init__Method · 0.70
__init__Method · 0.70
__init__Method · 0.70
__init__Method · 0.70
__init__Method · 0.70
__init__Method · 0.70

Calls

no outgoing calls

Tested by 7

__init__Method · 0.56
__init__Method · 0.56
__init__Method · 0.56
__init__Method · 0.56
__init__Method · 0.56
__init__Method · 0.56
__init__Method · 0.56