MCPcopy Create free account
hub / github.com/cel-expr/cel-cpp / Equal

Method Equal

common/values/parsed_repeated_field_value.cc:111–146  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

109}
110
111absl::Status ParsedRepeatedFieldValue::Equal(
112 const Value& other,
113 const google::protobuf::DescriptorPool* absl_nonnull descriptor_pool,
114 google::protobuf::MessageFactory* absl_nonnull message_factory,
115 google::protobuf::Arena* absl_nonnull arena, Value* absl_nonnull result) const {
116 if (auto other_value = other.AsParsedRepeatedField(); other_value) {
117 ABSL_DCHECK(field_ != nullptr);
118 ABSL_DCHECK(other_value->field_ != nullptr);
119 CEL_ASSIGN_OR_RETURN(
120 auto equal, internal::MessageFieldEquals(
121 *message_, field_, *other_value->message_,
122 other_value->field_, descriptor_pool, message_factory));
123 *result = BoolValue(equal);
124 return absl::OkStatus();
125 }
126 if (auto other_value = other.AsParsedJsonList(); other_value) {
127 if (other_value->value_ == nullptr) {
128 *result = BoolValue(IsEmpty());
129 return absl::OkStatus();
130 }
131 ABSL_DCHECK(field_ != nullptr);
132 CEL_ASSIGN_OR_RETURN(
133 auto equal,
134 internal::MessageFieldEquals(*message_, field_, *other_value->value_,
135 descriptor_pool, message_factory));
136 *result = BoolValue(equal);
137 return absl::OkStatus();
138 }
139 if (auto other_value = other.AsList(); other_value) {
140 return common_internal::ListValueEqual(ListValue(*this), *other_value,
141 descriptor_pool, message_factory,
142 arena, result);
143 }
144 *result = BoolValue(false);
145 return absl::OkStatus();
146}
147
148bool ParsedRepeatedFieldValue::IsZeroValue() const { return IsEmpty(); }
149

Callers 1

ContainsMethod · 0.45

Calls 6

ListValueEqualFunction · 0.85
BoolValueClass · 0.70
ListValueClass · 0.70
AsParsedRepeatedFieldMethod · 0.45
AsParsedJsonListMethod · 0.45
AsListMethod · 0.45

Tested by

no test coverage detected