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

Class FinalModelFlagsTyped

projects/Python/proto/test.py:618–653  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

616
617# Fast Binary Encoding FlagsTyped final model
618class FinalModelFlagsTyped(fbe.FinalModel):
619 def __init__(self, buffer, offset):
620 super().__init__(buffer, offset)
621
622 # Get the allocation size
623 # noinspection PyUnusedLocal
624 def fbe_allocation_size(self, value):
625 return self.fbe_size
626
627 # Get the final size
628 @property
629 def fbe_size(self):
630 return 8
631
632 # Check if the value is valid
633 def verify(self):
634 if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size:
635 return sys.maxsize
636
637 return self.fbe_size
638
639 # Get the value
640 def get(self):
641 if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size:
642 return FlagsTyped(), 0
643
644 return FlagsTyped(self.read_uint64(self.fbe_offset)), self.fbe_size
645
646 # Set the value
647 def set(self, value):
648 assert ((self._buffer.offset + self.fbe_offset + self.fbe_size) <= self._buffer.size), "Model is broken!"
649 if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size:
650 return 0
651
652 self.write_uint64(self.fbe_offset, value)
653 return self.fbe_size
654
655
656class FlagsEmpty(enum.IntFlag, metaclass=fbe.DefaultEnumMeta):

Callers 1

__init__Method · 0.70

Calls

no outgoing calls

Tested by 1

__init__Method · 0.56