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

Method read

python/pyfory/union.py:101–121  ·  view source on GitHub ↗
(self, read_context)

Source from the content-addressed store, hash-verified

99 serializer.write(write_context, value._value)
100
101 def read(self, read_context):
102 if self._typing_union:
103 return self._read_typing_union(read_context)
104 case_id = read_context.read_var_uint32()
105 typeinfo = self._get_case_type_info(case_id)
106 serializer = typeinfo.serializer
107 if serializer.need_to_write_ref:
108 ref_id = read_context.try_preserve_ref_id()
109 if ref_id < NOT_NULL_VALUE_FLAG:
110 value = read_context.get_read_ref()
111 return self._build_union(case_id, value)
112 self.type_resolver.read_type_info(read_context)
113 value = self._read_case_value(read_context, serializer)
114 read_context.set_read_ref(ref_id, value)
115 else:
116 if read_context.read_int8() == NULL_FLAG:
117 value = None
118 else:
119 self.type_resolver.read_type_info(read_context)
120 value = self._read_case_value(read_context, serializer)
121 return self._build_union(case_id, value)
122
123 def _read_case_value(self, read_context, serializer):
124 read_context.increase_depth()

Callers

nothing calls this directly

Calls 10

_read_typing_unionMethod · 0.95
_get_case_type_infoMethod · 0.95
_build_unionMethod · 0.95
_read_case_valueMethod · 0.95
read_var_uint32Method · 0.45
try_preserve_ref_idMethod · 0.45
get_read_refMethod · 0.45
read_type_infoMethod · 0.45
set_read_refMethod · 0.45
read_int8Method · 0.45

Tested by

no test coverage detected