(self, buffer, length: int)
| 178 | return encoded_meta_string |
| 179 | |
| 180 | def _read_big_meta_string(self, buffer, length: int): |
| 181 | hashcode = buffer.read_int64() |
| 182 | encoding = hashcode & 0xFF |
| 183 | if encoding > 4: |
| 184 | raise ValueError(f"Unexpected encoding flag: {encoding}") |
| 185 | reader_index = buffer.get_reader_index() |
| 186 | buffer.check_bound(reader_index, length) |
| 187 | data = buffer.get_bytes(reader_index, length) |
| 188 | buffer.set_reader_index(reader_index + length) |
| 189 | canonical_hash = hash_meta_string_data(data, encoding) |
| 190 | if canonical_hash != hashcode: |
| 191 | raise ValueError("Malformed metastring hash") |
| 192 | key = (hashcode, data) |
| 193 | encoded_meta_string = self._hash_to_encoded_meta_strings.get(key) |
| 194 | if encoded_meta_string is None: |
| 195 | encoded_meta_string = self.shared_registry.get_or_create_encoded_meta_string(data, hashcode) |
| 196 | if length <= MAX_CACHED_META_STRING_LENGTH and len(self._hash_to_encoded_meta_strings) < MAX_CACHED_META_STRINGS: |
| 197 | self._hash_to_encoded_meta_strings[key] = encoded_meta_string |
| 198 | return encoded_meta_string |
| 199 | |
| 200 | def reset(self): |
| 201 | self._dynamic_id_to_encoded_meta_strings.clear() |
no test coverage detected