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

Class AccountModel

projects/Python/proto/protoex.py:2176–2249  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2174
2175# Fast Binary Encoding Account model
2176class AccountModel(fbe.Model):
2177 __slots__ = "_model",
2178
2179 def __init__(self, buffer=None):
2180 super().__init__(buffer)
2181 self._model = FieldModelAccount(self.buffer, 4)
2182
2183 @property
2184 def model(self):
2185 return self._model
2186
2187 # Get the model size
2188 @property
2189 def fbe_size(self):
2190 return self._model.fbe_size + self._model.fbe_extra
2191
2192 # Get the model type
2193 @property
2194 def fbe_type(self):
2195 return self.TYPE
2196
2197 TYPE = FieldModelAccount.TYPE
2198
2199 # Check if the struct value is valid
2200 def verify(self):
2201 if (self.buffer.offset + self._model.fbe_offset - 4) > self.buffer.size:
2202 return False
2203
2204 fbe_full_size = self.read_uint32(self._model.fbe_offset - 4)
2205 if fbe_full_size < self._model.fbe_size:
2206 return False
2207
2208 return self._model.verify()
2209
2210 # Create a new model (begin phase)
2211 def create_begin(self):
2212 fbe_begin = self.buffer.allocate(4 + self._model.fbe_size)
2213 return fbe_begin
2214
2215 # Create a new model (end phase)
2216 def create_end(self, fbe_begin):
2217 fbe_end = self.buffer.size
2218 fbe_full_size = fbe_end - fbe_begin
2219 self.write_uint32(self._model.fbe_offset - 4, fbe_full_size)
2220 return fbe_full_size
2221
2222 # Serialize the struct value
2223 def serialize(self, value):
2224 fbe_begin = self.create_begin()
2225 self._model.set(value)
2226 fbe_full_size = self.create_end(fbe_begin)
2227 return fbe_full_size
2228
2229 # Deserialize the struct value
2230 def deserialize(self, value=None):
2231 if value is None:
2232 value = Account()
2233

Callers 1

cloneMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected