| 253 | namespace { |
| 254 | |
| 255 | CelValue LegacyTrivialStructValue(google::protobuf::Arena* absl_nonnull arena, |
| 256 | const Value& value) { |
| 257 | if (auto legacy_struct_value = common_internal::AsLegacyStructValue(value); |
| 258 | legacy_struct_value) { |
| 259 | return CelValue::CreateMessageWrapper( |
| 260 | AsMessageWrapper(legacy_struct_value->message_ptr(), |
| 261 | legacy_struct_value->legacy_type_info())); |
| 262 | } |
| 263 | if (auto parsed_message_value = value.AsParsedMessage(); |
| 264 | parsed_message_value) { |
| 265 | auto maybe_cloned = parsed_message_value->Clone(arena); |
| 266 | return CelValue::CreateMessageWrapper(MessageWrapper( |
| 267 | cel::to_address(maybe_cloned), &GetGenericProtoTypeInfoInstance())); |
| 268 | } |
| 269 | return CelValue::CreateError(google::protobuf::Arena::Create<absl::Status>( |
| 270 | arena, absl::InvalidArgumentError(absl::StrCat( |
| 271 | "unsupported conversion from cel::StructValue to CelValue: ", |
| 272 | value.GetRuntimeType().DebugString())))); |
| 273 | } |
| 274 | |
| 275 | CelValue LegacyTrivialListValue(google::protobuf::Arena* absl_nonnull arena, |
| 276 | const Value& value) { |
no test coverage detected