| 326 | |
| 327 | template <typename Type, typename Op> |
| 328 | auto ComplexInequality(Op&& op) { |
| 329 | return [op = std::forward<Op>(op)]( |
| 330 | Type t1, Type t2, |
| 331 | const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool, |
| 332 | google::protobuf::MessageFactory* absl_nonnull message_factory, |
| 333 | google::protobuf::Arena* absl_nonnull arena) -> absl::StatusOr<Value> { |
| 334 | CEL_ASSIGN_OR_RETURN(absl::optional<bool> result, |
| 335 | op(t1, t2, descriptor_pool, message_factory, arena)); |
| 336 | if (!result.has_value()) { |
| 337 | return ErrorValue( |
| 338 | cel::runtime_internal::CreateNoMatchingOverloadError(kInequal)); |
| 339 | } |
| 340 | return BoolValue(!*result); |
| 341 | }; |
| 342 | } |
| 343 | |
| 344 | template <class Type> |
| 345 | absl::Status RegisterComplexEqualityFunctionsForType( |
nothing calls this directly
no test coverage detected