write pre-encoded meta string to buffer (avoids re-encoding on each write)
| 129 | |
| 130 | /// write pre-encoded meta string to buffer (avoids re-encoding on each write) |
| 131 | static void write_encoded_meta_string(Buffer &buffer, |
| 132 | const CachedMetaString &encoded) { |
| 133 | const uint32_t encoded_len = static_cast<uint32_t>(encoded.bytes.size()); |
| 134 | uint32_t header = encoded_len << 1; // last bit 0 => new string |
| 135 | buffer.write_var_uint32(header); |
| 136 | |
| 137 | if (encoded_len > k_small_string_threshold) { |
| 138 | // For large strings, write pre-computed hash |
| 139 | buffer.write_int64(encoded.hash); |
| 140 | } else if (encoded_len > 0) { |
| 141 | // For small strings, write encoding byte |
| 142 | buffer.write_int8(static_cast<int8_t>(encoded.encoding)); |
| 143 | } |
| 144 | |
| 145 | if (encoded_len > 0) { |
| 146 | buffer.write_bytes(encoded.bytes.data(), encoded_len); |
| 147 | } |
| 148 | } |
| 149 | |
| 150 | Result<void, Error> |
| 151 | WriteContext::write_enum_type_info(const std::type_index &type) { |
no test coverage detected