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

Method ValueEqual

internal/json.cc:1782–1820  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1780 : lhs_accessor_(lhs_accessor), rhs_accessor_(rhs_accessor) {}
1781
1782 bool ValueEqual(const google::protobuf::MessageLite& lhs,
1783 const google::protobuf::MessageLite& rhs) {
1784 auto lhs_kind_case = lhs_accessor_->GetKindCase(lhs);
1785 if (lhs_kind_case == google::protobuf::Value::KIND_NOT_SET) {
1786 lhs_kind_case = google::protobuf::Value::kNullValue;
1787 }
1788 auto rhs_kind_case = rhs_accessor_->GetKindCase(rhs);
1789 if (rhs_kind_case == google::protobuf::Value::KIND_NOT_SET) {
1790 rhs_kind_case = google::protobuf::Value::kNullValue;
1791 }
1792 if (lhs_kind_case != rhs_kind_case) {
1793 return false;
1794 }
1795 switch (lhs_kind_case) {
1796 case google::protobuf::Value::KIND_NOT_SET:
1797 ABSL_UNREACHABLE();
1798 case google::protobuf::Value::kNullValue:
1799 return true;
1800 case google::protobuf::Value::kBoolValue:
1801 return lhs_accessor_->GetBoolValue(lhs) ==
1802 rhs_accessor_->GetBoolValue(rhs);
1803 case google::protobuf::Value::kNumberValue:
1804 return lhs_accessor_->GetNumberValue(lhs) ==
1805 rhs_accessor_->GetNumberValue(rhs);
1806 case google::protobuf::Value::kStringValue:
1807 return lhs_accessor_->GetStringValue(lhs, lhs_scratch_) ==
1808 rhs_accessor_->GetStringValue(rhs, rhs_scratch_);
1809 case google::protobuf::Value::kListValue:
1810 return ListValueEqual(lhs_accessor_->GetListValue(lhs),
1811 rhs_accessor_->GetListValue(rhs));
1812 case google::protobuf::Value::kStructValue:
1813 return StructEqual(lhs_accessor_->GetStructValue(lhs),
1814 rhs_accessor_->GetStructValue(rhs));
1815 default:
1816 // Should not get here, but if for some terrible reason
1817 // `google.protobuf.Value` is expanded, default to false.
1818 return false;
1819 }
1820 }
1821
1822 bool ListValueEqual(const google::protobuf::MessageLite& lhs,
1823 const google::protobuf::MessageLite& rhs) {

Callers 1

JsonEqualsFunction · 0.80

Calls 5

ListValueEqualFunction · 0.85
GetKindCaseMethod · 0.45
GetBoolValueMethod · 0.45
GetNumberValueMethod · 0.45
GetStringValueMethod · 0.45

Tested by

no test coverage detected