MCPcopy Create free account
hub / github.com/apache/fory / try_preserve_ref_id

Method try_preserve_ref_id

python/pyfory/resolver.py:190–203  ·  view source on GitHub ↗
(self, buffer)

Source from the content-addressed store, hash-verified

188 return ref_id
189
190 def try_preserve_ref_id(self, buffer) -> int:
191 head_flag = buffer.read_int8()
192 if head_flag == REF_FLAG:
193 ref_id = buffer.read_var_uint32()
194 self.read_object = self.get_read_ref(ref_id)
195 return head_flag
196 self.read_object = None
197 if head_flag == REF_VALUE_FLAG:
198 return self.preserve_ref_id()
199 # ``NOT_NULL_VALUE_FLAG`` means the value is not ref-tracked, but we still push a
200 # sentinel so ``reference`` can be called unconditionally by callers that materialize
201 # composite objects early.
202 self.read_ref_ids.append(-1)
203 return head_flag
204
205 def last_preserved_ref_id(self) -> int:
206 return self.read_ref_ids[-1]

Callers

nothing calls this directly

Calls 5

get_read_refMethod · 0.95
preserve_ref_idMethod · 0.95
read_int8Method · 0.45
read_var_uint32Method · 0.45
appendMethod · 0.45

Tested by

no test coverage detected