| 956 | } |
| 957 | |
| 958 | absl::Status Put(Value key, Value value) override { |
| 959 | CEL_RETURN_IF_ERROR(CheckMapKey(key)); |
| 960 | CEL_RETURN_IF_ERROR(CheckMapValue(value)); |
| 961 | if (auto it = map_->find(key); ABSL_PREDICT_FALSE(it != map_->end())) { |
| 962 | return DuplicateKeyError().ToStatus(); |
| 963 | } |
| 964 | UnsafePut(std::move(key), std::move(value)); |
| 965 | return absl::OkStatus(); |
| 966 | } |
| 967 | |
| 968 | void UnsafePut(Value key, Value value) override { |
| 969 | auto insertion = map_->insert({std::move(key), std::move(value)}); |