// Generated by the proto_extras plugin. DO NOT EDIT!
// source: components/personal_context/proto/features/at_memory.proto

#include "components/personal_context/proto/features/at_memory.equal.h"



#include "components/personal_context/proto/features/at_memory.pb.h"
#include "components/personal_context/proto/features/common_data.equal.h"
#include "components/personal_context/proto/features/common_data.pb.h"


namespace personal_context {
namespace proto {
bool operator==(const AtMemoryQueryRequest& lhs, const AtMemoryQueryRequest& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_input_query() != rhs.has_input_query()) return false;
  if (lhs.has_input_query() && lhs.input_query() != rhs.input_query()) return false;
  if (lhs.supported_local_data_types().size() != rhs.supported_local_data_types().size()) return false;
  for (int i = 0; i < lhs.supported_local_data_types().size(); ++i) {
    if (lhs.supported_local_data_types()[i] != rhs.supported_local_data_types()[i]) return false;
  }
  if (lhs.has_url() != rhs.has_url()) return false;
  if (lhs.has_url() && lhs.url() != rhs.url()) return false;
  if (lhs.has_locale() != rhs.has_locale()) return false;
  if (lhs.has_locale() && lhs.locale() != rhs.locale()) return false;
  if (lhs.has_title() != rhs.has_title()) return false;
  if (lhs.has_title() && lhs.title() != rhs.title()) return false;
  return true;
}

bool operator!=(const AtMemoryQueryRequest& lhs, const AtMemoryQueryRequest& rhs) {
  return !(lhs == rhs);
}
bool operator==(const AtMemoryQueryResponse& lhs, const AtMemoryQueryResponse& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_query_classification() != rhs.has_query_classification()) return false;
  if (lhs.has_query_classification() && lhs.query_classification() != rhs.query_classification()) return false;
  if (lhs.has_autofill_fetch_plan() != rhs.has_autofill_fetch_plan()) return false;
  if (lhs.has_autofill_fetch_plan() && lhs.autofill_fetch_plan() != rhs.autofill_fetch_plan()) return false;
  if (lhs.results().size() != rhs.results().size()) return false;
  for (int i = 0; i < lhs.results().size(); ++i) {
    if (lhs.results()[i] != rhs.results()[i]) return false;
  }
  return true;
}

bool operator!=(const AtMemoryQueryResponse& lhs, const AtMemoryQueryResponse& rhs) {
  return !(lhs == rhs);
}
bool operator==(const AutofillFetchSpecification& lhs, const AutofillFetchSpecification& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_data_type() != rhs.has_data_type()) return false;
  if (lhs.has_data_type() && lhs.data_type() != rhs.data_type()) return false;
  if (lhs.filters().size() != rhs.filters().size()) return false;
  for (int i = 0; i < lhs.filters().size(); ++i) {
    if (lhs.filters()[i] != rhs.filters()[i]) return false;
  }
  return true;
}

bool operator!=(const AutofillFetchSpecification& lhs, const AutofillFetchSpecification& rhs) {
  return !(lhs == rhs);
}
bool operator==(const AutofillFetchSpecification_StringFilter& lhs, const AutofillFetchSpecification_StringFilter& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_value() != rhs.has_value()) return false;
  if (lhs.has_value() && lhs.value() != rhs.value()) return false;
  if (lhs.has_mode() != rhs.has_mode()) return false;
  if (lhs.has_mode() && lhs.mode() != rhs.mode()) return false;
  return true;
}

bool operator!=(const AutofillFetchSpecification_StringFilter& lhs, const AutofillFetchSpecification_StringFilter& rhs) {
  return !(lhs == rhs);
}
bool operator==(const AutofillFetchSpecification_TypedValueFilter& lhs, const AutofillFetchSpecification_TypedValueFilter& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_typed_value() != rhs.has_typed_value()) return false;
  if (lhs.has_typed_value() && lhs.typed_value() != rhs.typed_value()) return false;
  if (lhs.has_filter_operator() != rhs.has_filter_operator()) return false;
  if (lhs.has_filter_operator() && lhs.filter_operator() != rhs.filter_operator()) return false;
  return true;
}

bool operator!=(const AutofillFetchSpecification_TypedValueFilter& lhs, const AutofillFetchSpecification_TypedValueFilter& rhs) {
  return !(lhs == rhs);
}
bool operator==(const AutofillFetchSpecification_Filter& lhs, const AutofillFetchSpecification_Filter& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.data_types().size() != rhs.data_types().size()) return false;
  for (int i = 0; i < lhs.data_types().size(); ++i) {
    if (lhs.data_types()[i] != rhs.data_types()[i]) return false;
  }
  if (lhs.has_string_filter() != rhs.has_string_filter()) return false;
  if (lhs.has_string_filter() && lhs.string_filter() != rhs.string_filter()) return false;
  if (lhs.has_typed_value_filter() != rhs.has_typed_value_filter()) return false;
  if (lhs.has_typed_value_filter() && lhs.typed_value_filter() != rhs.typed_value_filter()) return false;
  return true;
}

bool operator!=(const AutofillFetchSpecification_Filter& lhs, const AutofillFetchSpecification_Filter& rhs) {
  return !(lhs == rhs);
}
bool operator==(const AutofillFetchPlan& lhs, const AutofillFetchPlan& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.fetch_specifications().size() != rhs.fetch_specifications().size()) return false;
  for (int i = 0; i < lhs.fetch_specifications().size(); ++i) {
    if (lhs.fetch_specifications()[i] != rhs.fetch_specifications()[i]) return false;
  }
  return true;
}

bool operator!=(const AutofillFetchPlan& lhs, const AutofillFetchPlan& rhs) {
  return !(lhs == rhs);
}
bool operator==(const AtMemorySearchResult& lhs, const AtMemorySearchResult& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.sources().size() != rhs.sources().size()) return false;
  for (int i = 0; i < lhs.sources().size(); ++i) {
    if (lhs.sources()[i] != rhs.sources()[i]) return false;
  }
  if (lhs.has_primary_attribute() != rhs.has_primary_attribute()) return false;
  if (lhs.has_primary_attribute() && lhs.primary_attribute() != rhs.primary_attribute()) return false;
  if (lhs.secondary_attributes().size() != rhs.secondary_attributes().size()) return false;
  for (int i = 0; i < lhs.secondary_attributes().size(); ++i) {
    if (lhs.secondary_attributes()[i] != rhs.secondary_attributes()[i]) return false;
  }
  if (lhs.has_relevance_score() != rhs.has_relevance_score()) return false;
  if (lhs.has_relevance_score() && lhs.relevance_score() != rhs.relevance_score()) return false;
  return true;
}

bool operator!=(const AtMemorySearchResult& lhs, const AtMemorySearchResult& rhs) {
  return !(lhs == rhs);
}
bool operator==(const StringList& lhs, const StringList& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.values().size() != rhs.values().size()) return false;
  for (int i = 0; i < lhs.values().size(); ++i) {
    if (lhs.values()[i] != rhs.values()[i]) return false;
  }
  return true;
}

bool operator!=(const StringList& lhs, const StringList& rhs) {
  return !(lhs == rhs);
}
bool operator==(const TypedValue& lhs, const TypedValue& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.value_case() != rhs.value_case()) return false;
  switch (lhs.value_case()) {
    case TypedValue::kCountryCode:
      if (lhs.country_code() != rhs.country_code()) return false;
      break;
    case TypedValue::kDate:
      if (lhs.date() != rhs.date()) return false;
      break;
    case TypedValue::kDateTime:
      if (lhs.date_time() != rhs.date_time()) return false;
      break;
    case TypedValue::kStringList:
      if (lhs.string_list() != rhs.string_list()) return false;
      break;
    case TypedValue::VALUE_NOT_SET:
      break;
  }
  return true;
}

bool operator!=(const TypedValue& lhs, const TypedValue& rhs) {
  return !(lhs == rhs);
}
bool operator==(const Attribute& lhs, const Attribute& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.key_case() != rhs.key_case()) return false;
  switch (lhs.key_case()) {
    case Attribute::kSchemafulKey:
      if (lhs.schemaful_key() != rhs.schemaful_key()) return false;
      break;
    case Attribute::kSchemalessKey:
      if (lhs.schemaless_key() != rhs.schemaless_key()) return false;
      break;
    case Attribute::KEY_NOT_SET:
      break;
  }
  if (lhs.has_value() != rhs.has_value()) return false;
  if (lhs.has_value() && lhs.value() != rhs.value()) return false;
  if (lhs.has_typed_value() != rhs.has_typed_value()) return false;
  if (lhs.has_typed_value() && lhs.typed_value() != rhs.typed_value()) return false;
  return true;
}

bool operator!=(const Attribute& lhs, const Attribute& rhs) {
  return !(lhs == rhs);
}
}  // namespace proto
}  // namespace personal_context

