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

Class BalanceModel

projects/Python/proto/proto.py:1398–1471  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1396
1397# Fast Binary Encoding Balance model
1398class BalanceModel(fbe.Model):
1399 __slots__ = "_model",
1400
1401 def __init__(self, buffer=None):
1402 super().__init__(buffer)
1403 self._model = FieldModelBalance(self.buffer, 4)
1404
1405 @property
1406 def model(self):
1407 return self._model
1408
1409 # Get the model size
1410 @property
1411 def fbe_size(self):
1412 return self._model.fbe_size + self._model.fbe_extra
1413
1414 # Get the model type
1415 @property
1416 def fbe_type(self):
1417 return self.TYPE
1418
1419 TYPE = FieldModelBalance.TYPE
1420
1421 # Check if the struct value is valid
1422 def verify(self):
1423 if (self.buffer.offset + self._model.fbe_offset - 4) > self.buffer.size:
1424 return False
1425
1426 fbe_full_size = self.read_uint32(self._model.fbe_offset - 4)
1427 if fbe_full_size < self._model.fbe_size:
1428 return False
1429
1430 return self._model.verify()
1431
1432 # Create a new model (begin phase)
1433 def create_begin(self):
1434 fbe_begin = self.buffer.allocate(4 + self._model.fbe_size)
1435 return fbe_begin
1436
1437 # Create a new model (end phase)
1438 def create_end(self, fbe_begin):
1439 fbe_end = self.buffer.size
1440 fbe_full_size = fbe_end - fbe_begin
1441 self.write_uint32(self._model.fbe_offset - 4, fbe_full_size)
1442 return fbe_full_size
1443
1444 # Serialize the struct value
1445 def serialize(self, value):
1446 fbe_begin = self.create_begin()
1447 self._model.set(value)
1448 fbe_full_size = self.create_end(fbe_begin)
1449 return fbe_full_size
1450
1451 # Deserialize the struct value
1452 def deserialize(self, value=None):
1453 if value is None:
1454 value = Balance()
1455

Callers 1

cloneMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected