MCPcopy Index your code
hub / github.com/apache/fory / read_encoded_meta_string

Method read_encoded_meta_string

python/pyfory/context.py:140–154  ·  view source on GitHub ↗
(self, buffer)

Source from the content-addressed store, hash-verified

138 self._small_encoded_meta_strings = {}
139
140 def read_encoded_meta_string(self, buffer):
141 header = buffer.read_var_uint32()
142 length = header >> 1
143 if (header & 0b1) != 0:
144 if length <= 0:
145 raise ValueError("Invalid dynamic metastring id 0")
146 if length > len(self._dynamic_id_to_encoded_meta_strings):
147 raise ValueError(f"Invalid dynamic metastring id {length}")
148 return self._dynamic_id_to_encoded_meta_strings[length - 1]
149 if length <= SMALL_STRING_THRESHOLD:
150 encoded_meta_string = self._read_small_meta_string(buffer, length)
151 else:
152 encoded_meta_string = self._read_big_meta_string(buffer, length)
153 self._dynamic_id_to_encoded_meta_strings.append(encoded_meta_string)
154 return encoded_meta_string
155
156 def _read_small_meta_string(self, buffer, length: int):
157 if length == 0:

Calls 4

_read_big_meta_stringMethod · 0.95
read_var_uint32Method · 0.45
appendMethod · 0.45