| 179 | } |
| 180 | |
| 181 | absl::Status StructValue::ForEachField( |
| 182 | ForEachFieldCallback callback, |
| 183 | const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool, |
| 184 | google::protobuf::MessageFactory* absl_nonnull message_factory, |
| 185 | google::protobuf::Arena* absl_nonnull arena) const { |
| 186 | ABSL_DCHECK(descriptor_pool != nullptr); |
| 187 | ABSL_DCHECK(message_factory != nullptr); |
| 188 | ABSL_DCHECK(arena != nullptr); |
| 189 | |
| 190 | return variant_.Visit([&](const auto& alternative) -> absl::Status { |
| 191 | return alternative.ForEachField(callback, descriptor_pool, message_factory, |
| 192 | arena); |
| 193 | }); |
| 194 | } |
| 195 | |
| 196 | absl::Status StructValue::Qualify( |
| 197 | absl::Span<const SelectQualifier> qualifiers, bool presence_test, |