// Generated by the proto_extras plugin. DO NOT EDIT!
// source: components/optimization_guide/proto/model_quality_metadata.proto

#include "components/optimization_guide/proto/model_quality_metadata.equal.h"



#include "components/optimization_guide/proto/model_execution.equal.h"
#include "components/optimization_guide/proto/model_execution.pb.h"
#include "components/optimization_guide/proto/model_quality_metadata.pb.h"
#include "components/optimization_guide/proto/on_device_base_model_metadata.equal.h"
#include "components/optimization_guide/proto/on_device_base_model_metadata.pb.h"
#include "third_party/metrics_proto/system_profile.equal.h"
#include "third_party/metrics_proto/system_profile.pb.h"


namespace optimization_guide {
namespace proto {
bool operator==(const LoggingMetadata& lhs, const LoggingMetadata& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_system_profile() != rhs.has_system_profile()) return false;
  if (lhs.has_system_profile() && lhs.system_profile() != rhs.system_profile()) return false;
  if (lhs.has_on_device_system_profile() != rhs.has_on_device_system_profile()) return false;
  if (lhs.has_on_device_system_profile() && lhs.on_device_system_profile() != rhs.on_device_system_profile()) return false;
  if (lhs.client_id() != rhs.client_id()) return false;
  if (lhs.is_likely_dogfood_client() != rhs.is_likely_dogfood_client()) return false;
  return true;
}

bool operator!=(const LoggingMetadata& lhs, const LoggingMetadata& rhs) {
  return !(lhs == rhs);
}
bool operator==(const OnDeviceSystemProfile& lhs, const OnDeviceSystemProfile& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.performance_class() != rhs.performance_class()) return false;
  return true;
}

bool operator!=(const OnDeviceSystemProfile& lhs, const OnDeviceSystemProfile& rhs) {
  return !(lhs == rhs);
}
bool operator==(const ModelExecutionInfo& lhs, const ModelExecutionInfo& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_on_device_model_execution_info() != rhs.has_on_device_model_execution_info()) return false;
  if (lhs.has_on_device_model_execution_info() && lhs.on_device_model_execution_info() != rhs.on_device_model_execution_info()) return false;
  if (lhs.has_error_response() != rhs.has_error_response()) return false;
  if (lhs.has_error_response() && lhs.error_response() != rhs.error_response()) return false;
  if (lhs.model_execution_error_enum() != rhs.model_execution_error_enum()) return false;
  if (lhs.execution_id() != rhs.execution_id()) return false;
  return true;
}

bool operator!=(const ModelExecutionInfo& lhs, const ModelExecutionInfo& rhs) {
  return !(lhs == rhs);
}
bool operator==(const OnDeviceModelExecutionInfo& lhs, const OnDeviceModelExecutionInfo& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.execution_infos().size() != rhs.execution_infos().size()) return false;
  for (int i = 0; i < lhs.execution_infos().size(); ++i) {
    if (lhs.execution_infos()[i] != rhs.execution_infos()[i]) return false;
  }
  if (lhs.has_model_versions() != rhs.has_model_versions()) return false;
  if (lhs.has_model_versions() && lhs.model_versions() != rhs.model_versions()) return false;
  return true;
}

bool operator!=(const OnDeviceModelExecutionInfo& lhs, const OnDeviceModelExecutionInfo& rhs) {
  return !(lhs == rhs);
}
bool operator==(const OnDeviceModelVersions& lhs, const OnDeviceModelVersions& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_on_device_model_service_version() != rhs.has_on_device_model_service_version()) return false;
  if (lhs.has_on_device_model_service_version() && lhs.on_device_model_service_version() != rhs.on_device_model_service_version()) return false;
  if (lhs.text_safety_model_version() != rhs.text_safety_model_version()) return false;
  return true;
}

bool operator!=(const OnDeviceModelVersions& lhs, const OnDeviceModelVersions& rhs) {
  return !(lhs == rhs);
}
bool operator==(const OnDeviceModelServiceVersion& lhs, const OnDeviceModelServiceVersion& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.component_version() != rhs.component_version()) return false;
  if (lhs.has_on_device_base_model_metadata() != rhs.has_on_device_base_model_metadata()) return false;
  if (lhs.has_on_device_base_model_metadata() && lhs.on_device_base_model_metadata() != rhs.on_device_base_model_metadata()) return false;
  if (lhs.model_adaptation_version() != rhs.model_adaptation_version()) return false;
  return true;
}

bool operator!=(const OnDeviceModelServiceVersion& lhs, const OnDeviceModelServiceVersion& rhs) {
  return !(lhs == rhs);
}
bool operator==(const InternalOnDeviceModelExecutionInfo& lhs, const InternalOnDeviceModelExecutionInfo& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.has_request() != rhs.has_request()) return false;
  if (lhs.has_request() && lhs.request() != rhs.request()) return false;
  if (lhs.has_response() != rhs.has_response()) return false;
  if (lhs.has_response() && lhs.response() != rhs.response()) return false;
  return true;
}

bool operator!=(const InternalOnDeviceModelExecutionInfo& lhs, const InternalOnDeviceModelExecutionInfo& rhs) {
  return !(lhs == rhs);
}
bool operator==(const InternalOnDeviceRequest& lhs, const InternalOnDeviceRequest& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.request_case() != rhs.request_case()) return false;
  switch (lhs.request_case()) {
    case InternalOnDeviceRequest::kOnDeviceModelServiceRequest:
      if (lhs.on_device_model_service_request() != rhs.on_device_model_service_request()) return false;
      break;
    case InternalOnDeviceRequest::kTextSafetyModelRequest:
      if (lhs.text_safety_model_request() != rhs.text_safety_model_request()) return false;
      break;
    case InternalOnDeviceRequest::REQUEST_NOT_SET:
      break;
  }
  return true;
}

bool operator!=(const InternalOnDeviceRequest& lhs, const InternalOnDeviceRequest& rhs) {
  return !(lhs == rhs);
}
bool operator==(const InternalOnDeviceResponse& lhs, const InternalOnDeviceResponse& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.response_case() != rhs.response_case()) return false;
  switch (lhs.response_case()) {
    case InternalOnDeviceResponse::kOnDeviceModelServiceResponse:
      if (lhs.on_device_model_service_response() != rhs.on_device_model_service_response()) return false;
      break;
    case InternalOnDeviceResponse::kTextSafetyModelResponse:
      if (lhs.text_safety_model_response() != rhs.text_safety_model_response()) return false;
      break;
    case InternalOnDeviceResponse::RESPONSE_NOT_SET:
      break;
  }
  return true;
}

bool operator!=(const InternalOnDeviceResponse& lhs, const InternalOnDeviceResponse& rhs) {
  return !(lhs == rhs);
}
bool operator==(const OnDeviceModelServiceRequest& lhs, const OnDeviceModelServiceRequest& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.input_context_string() != rhs.input_context_string()) return false;
  if (lhs.input_context_num_tokens_processed() != rhs.input_context_num_tokens_processed()) return false;
  if (lhs.execution_string() != rhs.execution_string()) return false;
  if (lhs.execution_num_tokens_processed() != rhs.execution_num_tokens_processed()) return false;
  if (lhs.time_from_input_context_processed_to_request_initiated_millis() != rhs.time_from_input_context_processed_to_request_initiated_millis()) return false;
  return true;
}

bool operator!=(const OnDeviceModelServiceRequest& lhs, const OnDeviceModelServiceRequest& rhs) {
  return !(lhs == rhs);
}
bool operator==(const OnDeviceModelServiceResponse& lhs, const OnDeviceModelServiceResponse& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.output_string() != rhs.output_string()) return false;
  if (lhs.time_to_first_response_millis() != rhs.time_to_first_response_millis()) return false;
  if (lhs.time_to_completion_millis() != rhs.time_to_completion_millis()) return false;
  if (lhs.status() != rhs.status()) return false;
  if (lhs.has_repeats() != rhs.has_repeats()) return false;
  return true;
}

bool operator!=(const OnDeviceModelServiceResponse& lhs, const OnDeviceModelServiceResponse& rhs) {
  return !(lhs == rhs);
}
bool operator==(const TextSafetyModelRequest& lhs, const TextSafetyModelRequest& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.text() != rhs.text()) return false;
  if (lhs.url() != rhs.url()) return false;
  return true;
}

bool operator!=(const TextSafetyModelRequest& lhs, const TextSafetyModelRequest& rhs) {
  return !(lhs == rhs);
}
bool operator==(const TextSafetyModelResponse& lhs, const TextSafetyModelResponse& rhs) {
  if (&lhs == &rhs) return true;
  if (lhs.unknown_fields() != rhs.unknown_fields()) return false;
  if (lhs.scores().size() != rhs.scores().size()) return false;
  for (int i = 0; i < lhs.scores().size(); ++i) {
    if (lhs.scores()[i] != rhs.scores()[i]) return false;
  }
  if (lhs.is_unsafe() != rhs.is_unsafe()) return false;
  if (lhs.server_execution_id() != rhs.server_execution_id()) return false;
  if (lhs.language_code() != rhs.language_code()) return false;
  if (lhs.language_confidence() != rhs.language_confidence()) return false;
  return true;
}

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

