| 316 | } // namespace common_internal |
| 317 | |
| 318 | absl::Status CheckMapKey(const Value& key) { |
| 319 | switch (key.kind()) { |
| 320 | case ValueKind::kBool: |
| 321 | ABSL_FALLTHROUGH_INTENDED; |
| 322 | case ValueKind::kInt: |
| 323 | ABSL_FALLTHROUGH_INTENDED; |
| 324 | case ValueKind::kUint: |
| 325 | ABSL_FALLTHROUGH_INTENDED; |
| 326 | case ValueKind::kString: |
| 327 | return absl::OkStatus(); |
| 328 | case ValueKind::kError: |
| 329 | return key.GetError().NativeValue(); |
| 330 | default: |
| 331 | return InvalidMapKeyTypeError(key.kind()); |
| 332 | } |
| 333 | } |
| 334 | |
| 335 | optional_ref<const CustomMapValue> MapValue::AsCustom() const& { |
| 336 | if (const auto* alternative = variant_.As<CustomMapValue>(); |