| 199 | } |
| 200 | |
| 201 | absl::Status MapValue::ForEach( |
| 202 | ForEachCallback callback, |
| 203 | const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool, |
| 204 | google::protobuf::MessageFactory* absl_nonnull message_factory, |
| 205 | google::protobuf::Arena* absl_nonnull arena) const { |
| 206 | ABSL_DCHECK(descriptor_pool != nullptr); |
| 207 | ABSL_DCHECK(message_factory != nullptr); |
| 208 | ABSL_DCHECK(arena != nullptr); |
| 209 | |
| 210 | return variant_.Visit([&](const auto& alternative) -> absl::Status { |
| 211 | return alternative.ForEach(callback, descriptor_pool, message_factory, |
| 212 | arena); |
| 213 | }); |
| 214 | } |
| 215 | |
| 216 | absl::StatusOr<absl_nonnull ValueIteratorPtr> MapValue::NewIterator() const { |
| 217 | return variant_.Visit([](const auto& alternative) |