// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: components/optimization_guide/proto/features/wallpaper_search.proto
// Protobuf C++ Version: 7.35.1

#ifndef components_2foptimization_5fguide_2fproto_2ffeatures_2fwallpaper_5fsearch_2eproto_2epb_2eh
#define components_2foptimization_5fguide_2fproto_2ffeatures_2fwallpaper_5fsearch_2eproto_2epb_2eh

#include <limits>
#include <string>
#include <type_traits>
#include <utility>

// clang-format off
#include "google/protobuf/runtime_version.h"
#if PROTOBUF_VERSION != 7035001
#error "Protobuf C++ gencode is built with an incompatible version of"
#error "Protobuf C++ headers/runtime. See"
#error "https://protobuf.dev/support/cross-version-runtime-guarantee/#cpp"
#endif
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/arena.h"
#include "google/protobuf/arenastring.h"
#include "google/protobuf/generated_message_tctable_decl.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/metadata_lite.h"
#include "google/protobuf/message_lite.h"
#include "google/protobuf/repeated_field.h"  // IWYU pragma: export
#include "google/protobuf/extension_set.h"  // IWYU pragma: export
#include "components/optimization_guide/proto/features/common_quality_data.pb.h"
#include "components/optimization_guide/proto/model_quality_metadata.pb.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"

#define PROTOBUF_INTERNAL_EXPORT_components_2foptimization_5fguide_2fproto_2ffeatures_2fwallpaper_5fsearch_2eproto

namespace google {
namespace protobuf {
namespace internal {
template <typename T>
::absl::string_view GetAnyMessageName();
}  // namespace internal
}  // namespace protobuf
}  // namespace google

// Internal implementation detail -- do not use these members.
struct TableStruct_components_2foptimization_5fguide_2fproto_2ffeatures_2fwallpaper_5fsearch_2eproto {
  static const ::uint32_t offsets[];
};
namespace optimization_guide {
namespace proto {
class Descriptors;
struct DescriptorsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DescriptorsGlobalsTypeInternal Descriptors_globals_;
extern const ::google::protobuf::internal::ClassDataLite Descriptors_class_data_;
#else
extern const DescriptorsGlobalsTypeInternal Descriptors_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Image;
struct ImageGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ImageGlobalsTypeInternal Image_globals_;
extern const ::google::protobuf::internal::ClassDataLite Image_class_data_;
#else
extern const ImageGlobalsTypeInternal Image_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class WallpaperSearchImageQuality;
struct WallpaperSearchImageQualityGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern WallpaperSearchImageQualityGlobalsTypeInternal WallpaperSearchImageQuality_globals_;
extern const ::google::protobuf::internal::ClassDataLite WallpaperSearchImageQuality_class_data_;
#else
extern const WallpaperSearchImageQualityGlobalsTypeInternal WallpaperSearchImageQuality_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class WallpaperSearchLoggingData;
struct WallpaperSearchLoggingDataGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern WallpaperSearchLoggingDataGlobalsTypeInternal WallpaperSearchLoggingData_globals_;
extern const ::google::protobuf::internal::ClassDataLite WallpaperSearchLoggingData_class_data_;
#else
extern const WallpaperSearchLoggingDataGlobalsTypeInternal WallpaperSearchLoggingData_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class WallpaperSearchQuality;
struct WallpaperSearchQualityGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern WallpaperSearchQualityGlobalsTypeInternal WallpaperSearchQuality_globals_;
extern const ::google::protobuf::internal::ClassDataLite WallpaperSearchQuality_class_data_;
#else
extern const WallpaperSearchQualityGlobalsTypeInternal WallpaperSearchQuality_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class WallpaperSearchRequest;
struct WallpaperSearchRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern WallpaperSearchRequestGlobalsTypeInternal WallpaperSearchRequest_globals_;
extern const ::google::protobuf::internal::ClassDataLite WallpaperSearchRequest_class_data_;
#else
extern const WallpaperSearchRequestGlobalsTypeInternal WallpaperSearchRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class WallpaperSearchResponse;
struct WallpaperSearchResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern WallpaperSearchResponseGlobalsTypeInternal WallpaperSearchResponse_globals_;
extern const ::google::protobuf::internal::ClassDataLite WallpaperSearchResponse_class_data_;
#else
extern const WallpaperSearchResponseGlobalsTypeInternal WallpaperSearchResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
}  // namespace proto
}  // namespace optimization_guide
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google

namespace optimization_guide {
namespace proto {

// ===================================================================


// -------------------------------------------------------------------

class  WallpaperSearchImageQuality final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:optimization_guide.proto.WallpaperSearchImageQuality) */ {
 public:
  inline WallpaperSearchImageQuality() : WallpaperSearchImageQuality(nullptr) {}
  ~WallpaperSearchImageQuality() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(WallpaperSearchImageQuality* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(WallpaperSearchImageQuality));
  }
#endif

  template <typename = void>
  explicit constexpr WallpaperSearchImageQuality(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline WallpaperSearchImageQuality(const WallpaperSearchImageQuality& from) : WallpaperSearchImageQuality(nullptr, from) {}
  inline WallpaperSearchImageQuality(WallpaperSearchImageQuality&& from) noexcept : WallpaperSearchImageQuality(nullptr, ::std::move(from)) {}
  inline WallpaperSearchImageQuality& operator=(const WallpaperSearchImageQuality& from) {
    CopyFrom(from);
    return *this;
  }
  inline WallpaperSearchImageQuality& operator=(WallpaperSearchImageQuality&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const WallpaperSearchImageQuality& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<WallpaperSearchImageQuality>(&WallpaperSearchImageQuality_globals_);
  }
  static constexpr int kIndexInFileMessages = 6;
  friend void swap(WallpaperSearchImageQuality& a, WallpaperSearchImageQuality& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(WallpaperSearchImageQuality* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(WallpaperSearchImageQuality* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  WallpaperSearchImageQuality* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<WallpaperSearchImageQuality>(arena);
  }
  void CopyFrom(const WallpaperSearchImageQuality& from);
  void MergeFrom(const WallpaperSearchImageQuality& from) { WallpaperSearchImageQuality::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(WallpaperSearchImageQuality* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "optimization_guide.proto.WallpaperSearchImageQuality"; }

  explicit WallpaperSearchImageQuality(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  WallpaperSearchImageQuality(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const WallpaperSearchImageQuality& from);
  WallpaperSearchImageQuality(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, WallpaperSearchImageQuality&& from) noexcept
      : WallpaperSearchImageQuality(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kImageIdFieldNumber = 1,
    kPreviewedFieldNumber = 2,
    kSelectedFieldNumber = 3,
    kPreviewLatencyMsFieldNumber = 4,
  };
  // int64 image_id = 1 [features = {
  void clear_image_id() ;
  ::int64_t image_id() const;
  void set_image_id(::int64_t value);

  private:
  ::int64_t _internal_image_id() const;
  void _internal_set_image_id(::int64_t value);

  public:
  // bool previewed = 2 [features = {
  void clear_previewed() ;
  bool previewed() const;
  void set_previewed(bool value);

  private:
  bool _internal_previewed() const;
  void _internal_set_previewed(bool value);

  public:
  // bool selected = 3 [features = {
  void clear_selected() ;
  bool selected() const;
  void set_selected(bool value);

  private:
  bool _internal_selected() const;
  void _internal_set_selected(bool value);

  public:
  // int32 preview_latency_ms = 4 [features = {
  bool has_preview_latency_ms()
      const;
  void clear_preview_latency_ms() ;
  ::int32_t preview_latency_ms() const;
  void set_preview_latency_ms(::int32_t value);

  private:
  ::int32_t _internal_preview_latency_ms() const;
  void _internal_set_preview_latency_ms(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:optimization_guide.proto.WallpaperSearchImageQuality)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const WallpaperSearchImageQuality& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::int64_t image_id_;
    bool previewed_;
    bool selected_;
    ::int32_t preview_latency_ms_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2foptimization_5fguide_2fproto_2ffeatures_2fwallpaper_5fsearch_2eproto;
};
// -------------------------------------------------------------------

class  Image final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:optimization_guide.proto.Image) */ {
 public:
  inline Image() : Image(nullptr) {}
  ~Image() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Image* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Image));
  }
#endif

  template <typename = void>
  explicit constexpr Image(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Image(const Image& from) : Image(nullptr, from) {}
  inline Image(Image&& from) noexcept : Image(nullptr, ::std::move(from)) {}
  inline Image& operator=(const Image& from) {
    CopyFrom(from);
    return *this;
  }
  inline Image& operator=(Image&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Image& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Image>(&Image_globals_);
  }
  static constexpr int kIndexInFileMessages = 4;
  friend void swap(Image& a, Image& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(Image* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Image* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  Image* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Image>(arena);
  }
  void CopyFrom(const Image& from);
  void MergeFrom(const Image& from) { Image::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Image* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "optimization_guide.proto.Image"; }

  explicit Image(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Image(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Image& from);
  Image(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Image&& from) noexcept
      : Image(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kEncodedImageFieldNumber = 1,
    kImageIdFieldNumber = 2,
  };
  // bytes encoded_image = 1 [features = {
  void clear_encoded_image() ;
  const ::std::string& encoded_image() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_encoded_image(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_encoded_image();
  ::std::string* PROTOBUF_NULLABLE release_encoded_image();
  void set_allocated_encoded_image(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_encoded_image() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_encoded_image(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_encoded_image();

  public:
  // int64 image_id = 2 [features = {
  void clear_image_id() ;
  ::int64_t image_id() const;
  void set_image_id(::int64_t value);

  private:
  ::int64_t _internal_image_id() const;
  void _internal_set_image_id(::int64_t value);

  public:
  // @@protoc_insertion_point(class_scope:optimization_guide.proto.Image)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Image& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr encoded_image_;
    ::int64_t image_id_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2foptimization_5fguide_2fproto_2ffeatures_2fwallpaper_5fsearch_2eproto;
};
// -------------------------------------------------------------------

class  Descriptors final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:optimization_guide.proto.Descriptors) */ {
 public:
  inline Descriptors() : Descriptors(nullptr) {}
  ~Descriptors() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Descriptors* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Descriptors));
  }
#endif

  template <typename = void>
  explicit constexpr Descriptors(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Descriptors(const Descriptors& from) : Descriptors(nullptr, from) {}
  inline Descriptors(Descriptors&& from) noexcept : Descriptors(nullptr, ::std::move(from)) {}
  inline Descriptors& operator=(const Descriptors& from) {
    CopyFrom(from);
    return *this;
  }
  inline Descriptors& operator=(Descriptors&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Descriptors& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Descriptors>(&Descriptors_globals_);
  }
  static constexpr int kIndexInFileMessages = 2;
  friend void swap(Descriptors& a, Descriptors& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(Descriptors* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Descriptors* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  Descriptors* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Descriptors>(arena);
  }
  void CopyFrom(const Descriptors& from);
  void MergeFrom(const Descriptors& from) { Descriptors::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Descriptors* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "optimization_guide.proto.Descriptors"; }

  explicit Descriptors(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Descriptors(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Descriptors& from);
  Descriptors(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Descriptors&& from) noexcept
      : Descriptors(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSubjectFieldNumber = 1,
    kStyleFieldNumber = 2,
    kMoodFieldNumber = 3,
    kColorFieldNumber = 4,
  };
  // string subject = 1 [features = {
  void clear_subject() ;
  const ::std::string& subject() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_subject(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_subject();
  ::std::string* PROTOBUF_NULLABLE release_subject();
  void set_allocated_subject(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_subject() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_subject(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_subject();

  public:
  // string style = 2 [features = {
  void clear_style() ;
  const ::std::string& style() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_style(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_style();
  ::std::string* PROTOBUF_NULLABLE release_style();
  void set_allocated_style(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_style() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_style(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_style();

  public:
  // string mood = 3 [features = {
  void clear_mood() ;
  const ::std::string& mood() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_mood(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_mood();
  ::std::string* PROTOBUF_NULLABLE release_mood();
  void set_allocated_mood(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_mood() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_mood(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_mood();

  public:
  // string color = 4 [features = {
  void clear_color() ;
  const ::std::string& color() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_color(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_color();
  ::std::string* PROTOBUF_NULLABLE release_color();
  void set_allocated_color(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_color() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_color(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_color();

  public:
  // @@protoc_insertion_point(class_scope:optimization_guide.proto.Descriptors)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          0, 66,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Descriptors& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr subject_;
    ::google::protobuf::internal::ArenaStringPtr style_;
    ::google::protobuf::internal::ArenaStringPtr mood_;
    ::google::protobuf::internal::ArenaStringPtr color_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2foptimization_5fguide_2fproto_2ffeatures_2fwallpaper_5fsearch_2eproto;
};
// -------------------------------------------------------------------

class  WallpaperSearchResponse final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:optimization_guide.proto.WallpaperSearchResponse) */ {
 public:
  inline WallpaperSearchResponse() : WallpaperSearchResponse(nullptr) {}
  ~WallpaperSearchResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(WallpaperSearchResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(WallpaperSearchResponse));
  }
#endif

  template <typename = void>
  explicit constexpr WallpaperSearchResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline WallpaperSearchResponse(const WallpaperSearchResponse& from) : WallpaperSearchResponse(nullptr, from) {}
  inline WallpaperSearchResponse(WallpaperSearchResponse&& from) noexcept : WallpaperSearchResponse(nullptr, ::std::move(from)) {}
  inline WallpaperSearchResponse& operator=(const WallpaperSearchResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline WallpaperSearchResponse& operator=(WallpaperSearchResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const WallpaperSearchResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<WallpaperSearchResponse>(&WallpaperSearchResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 3;
  friend void swap(WallpaperSearchResponse& a, WallpaperSearchResponse& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(WallpaperSearchResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(WallpaperSearchResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  WallpaperSearchResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<WallpaperSearchResponse>(arena);
  }
  void CopyFrom(const WallpaperSearchResponse& from);
  void MergeFrom(const WallpaperSearchResponse& from) { WallpaperSearchResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(WallpaperSearchResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "optimization_guide.proto.WallpaperSearchResponse"; }

  explicit WallpaperSearchResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  WallpaperSearchResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const WallpaperSearchResponse& from);
  WallpaperSearchResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, WallpaperSearchResponse&& from) noexcept
      : WallpaperSearchResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kImagesFieldNumber = 2,
  };
  // repeated .optimization_guide.proto.Image images = 2;
  int images_size()
      const;
  private:
  int _internal_images_size() const;

  public:
  void clear_images() ;
  const ::optimization_guide::proto::Image& images(int index) const;
  ::optimization_guide::proto::Image* PROTOBUF_NONNULL mutable_images(int index);
  ::optimization_guide::proto::Image* PROTOBUF_NONNULL add_images();
  const ::google::protobuf::RepeatedPtrField<::optimization_guide::proto::Image>&
  images() const;
  ::google::protobuf::RepeatedPtrField<::optimization_guide::proto::Image>* PROTOBUF_NONNULL
  mutable_images();

  private:
  const ::google::protobuf::RepeatedPtrField<::optimization_guide::proto::Image>& _internal_images() const;
  ::google::protobuf::RepeatedPtrField<::optimization_guide::proto::Image>* PROTOBUF_NONNULL _internal_mutable_images();

  public:
  // @@protoc_insertion_point(class_scope:optimization_guide.proto.WallpaperSearchResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const WallpaperSearchResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::optimization_guide::proto::Image > images_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2foptimization_5fguide_2fproto_2ffeatures_2fwallpaper_5fsearch_2eproto;
};
// -------------------------------------------------------------------

class  WallpaperSearchRequest final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:optimization_guide.proto.WallpaperSearchRequest) */ {
 public:
  inline WallpaperSearchRequest() : WallpaperSearchRequest(nullptr) {}
  ~WallpaperSearchRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(WallpaperSearchRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(WallpaperSearchRequest));
  }
#endif

  template <typename = void>
  explicit constexpr WallpaperSearchRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline WallpaperSearchRequest(const WallpaperSearchRequest& from) : WallpaperSearchRequest(nullptr, from) {}
  inline WallpaperSearchRequest(WallpaperSearchRequest&& from) noexcept : WallpaperSearchRequest(nullptr, ::std::move(from)) {}
  inline WallpaperSearchRequest& operator=(const WallpaperSearchRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline WallpaperSearchRequest& operator=(WallpaperSearchRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const WallpaperSearchRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<WallpaperSearchRequest>(&WallpaperSearchRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 1;
  friend void swap(WallpaperSearchRequest& a, WallpaperSearchRequest& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(WallpaperSearchRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(WallpaperSearchRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  WallpaperSearchRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<WallpaperSearchRequest>(arena);
  }
  void CopyFrom(const WallpaperSearchRequest& from);
  void MergeFrom(const WallpaperSearchRequest& from) { WallpaperSearchRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(WallpaperSearchRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "optimization_guide.proto.WallpaperSearchRequest"; }

  explicit WallpaperSearchRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  WallpaperSearchRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const WallpaperSearchRequest& from);
  WallpaperSearchRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, WallpaperSearchRequest&& from) noexcept
      : WallpaperSearchRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDescriptorsFieldNumber = 2,
  };
  // .optimization_guide.proto.Descriptors descriptors = 2;
  bool has_descriptors()
      const;
  void clear_descriptors() ;
  const ::optimization_guide::proto::Descriptors& descriptors() const;
  ::optimization_guide::proto::Descriptors* PROTOBUF_NULLABLE release_descriptors();
  ::optimization_guide::proto::Descriptors* PROTOBUF_NONNULL mutable_descriptors();
  void set_allocated_descriptors(::optimization_guide::proto::Descriptors* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_descriptors(::optimization_guide::proto::Descriptors* PROTOBUF_NULLABLE value);
  ::optimization_guide::proto::Descriptors* PROTOBUF_NULLABLE unsafe_arena_release_descriptors();

  private:
  const ::optimization_guide::proto::Descriptors& _internal_descriptors() const;
  ::optimization_guide::proto::Descriptors* PROTOBUF_NONNULL _internal_mutable_descriptors();

  public:
  // @@protoc_insertion_point(class_scope:optimization_guide.proto.WallpaperSearchRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const WallpaperSearchRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::optimization_guide::proto::Descriptors* PROTOBUF_NULLABLE descriptors_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2foptimization_5fguide_2fproto_2ffeatures_2fwallpaper_5fsearch_2eproto;
};
// -------------------------------------------------------------------

class  WallpaperSearchQuality final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:optimization_guide.proto.WallpaperSearchQuality) */ {
 public:
  inline WallpaperSearchQuality() : WallpaperSearchQuality(nullptr) {}
  ~WallpaperSearchQuality() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(WallpaperSearchQuality* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(WallpaperSearchQuality));
  }
#endif

  template <typename = void>
  explicit constexpr WallpaperSearchQuality(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline WallpaperSearchQuality(const WallpaperSearchQuality& from) : WallpaperSearchQuality(nullptr, from) {}
  inline WallpaperSearchQuality(WallpaperSearchQuality&& from) noexcept : WallpaperSearchQuality(nullptr, ::std::move(from)) {}
  inline WallpaperSearchQuality& operator=(const WallpaperSearchQuality& from) {
    CopyFrom(from);
    return *this;
  }
  inline WallpaperSearchQuality& operator=(WallpaperSearchQuality&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const WallpaperSearchQuality& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<WallpaperSearchQuality>(&WallpaperSearchQuality_globals_);
  }
  static constexpr int kIndexInFileMessages = 5;
  friend void swap(WallpaperSearchQuality& a, WallpaperSearchQuality& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(WallpaperSearchQuality* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(WallpaperSearchQuality* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  WallpaperSearchQuality* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<WallpaperSearchQuality>(arena);
  }
  void CopyFrom(const WallpaperSearchQuality& from);
  void MergeFrom(const WallpaperSearchQuality& from) { WallpaperSearchQuality::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(WallpaperSearchQuality* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "optimization_guide.proto.WallpaperSearchQuality"; }

  explicit WallpaperSearchQuality(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  WallpaperSearchQuality(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const WallpaperSearchQuality& from);
  WallpaperSearchQuality(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, WallpaperSearchQuality&& from) noexcept
      : WallpaperSearchQuality(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kImagesQualityFieldNumber = 2,
    kSessionIdFieldNumber = 1,
    kIndexFieldNumber = 3,
    kUserFeedbackFieldNumber = 4,
    kFinalRequestInSessionFieldNumber = 5,
    kRequestLatencyMsFieldNumber = 6,
    kCompleteLatencyMsFieldNumber = 7,
  };
  // repeated .optimization_guide.proto.WallpaperSearchImageQuality images_quality = 2;
  int images_quality_size()
      const;
  private:
  int _internal_images_quality_size() const;

  public:
  void clear_images_quality() ;
  const ::optimization_guide::proto::WallpaperSearchImageQuality& images_quality(int index) const;
  ::optimization_guide::proto::WallpaperSearchImageQuality* PROTOBUF_NONNULL mutable_images_quality(int index);
  ::optimization_guide::proto::WallpaperSearchImageQuality* PROTOBUF_NONNULL add_images_quality();
  const ::google::protobuf::RepeatedPtrField<::optimization_guide::proto::WallpaperSearchImageQuality>&
  images_quality() const;
  ::google::protobuf::RepeatedPtrField<::optimization_guide::proto::WallpaperSearchImageQuality>* PROTOBUF_NONNULL
  mutable_images_quality();

  private:
  const ::google::protobuf::RepeatedPtrField<::optimization_guide::proto::WallpaperSearchImageQuality>& _internal_images_quality() const;
  ::google::protobuf::RepeatedPtrField<::optimization_guide::proto::WallpaperSearchImageQuality>* PROTOBUF_NONNULL _internal_mutable_images_quality();

  public:
  // int64 session_id = 1 [features = {
  void clear_session_id() ;
  ::int64_t session_id() const;
  void set_session_id(::int64_t value);

  private:
  ::int64_t _internal_session_id() const;
  void _internal_set_session_id(::int64_t value);

  public:
  // int32 index = 3 [features = {
  void clear_index() ;
  ::int32_t index() const;
  void set_index(::int32_t value);

  private:
  ::int32_t _internal_index() const;
  void _internal_set_index(::int32_t value);

  public:
  // .optimization_guide.proto.UserFeedback user_feedback = 4 [features = {
  void clear_user_feedback() ;
  ::optimization_guide::proto::UserFeedback user_feedback() const;
  void set_user_feedback(::optimization_guide::proto::UserFeedback value);

  private:
  ::optimization_guide::proto::UserFeedback _internal_user_feedback() const;
  void _internal_set_user_feedback(::optimization_guide::proto::UserFeedback value);

  public:
  // bool final_request_in_session = 5 [features = {
  void clear_final_request_in_session() ;
  bool final_request_in_session() const;
  void set_final_request_in_session(bool value);

  private:
  bool _internal_final_request_in_session() const;
  void _internal_set_final_request_in_session(bool value);

  public:
  // int32 request_latency_ms = 6 [features = {
  void clear_request_latency_ms() ;
  ::int32_t request_latency_ms() const;
  void set_request_latency_ms(::int32_t value);

  private:
  ::int32_t _internal_request_latency_ms() const;
  void _internal_set_request_latency_ms(::int32_t value);

  public:
  // int32 complete_latency_ms = 7 [features = {
  void clear_complete_latency_ms() ;
  ::int32_t complete_latency_ms() const;
  void set_complete_latency_ms(::int32_t value);

  private:
  ::int32_t _internal_complete_latency_ms() const;
  void _internal_set_complete_latency_ms(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:optimization_guide.proto.WallpaperSearchQuality)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 7,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const WallpaperSearchQuality& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::optimization_guide::proto::WallpaperSearchImageQuality > images_quality_;
    ::int64_t session_id_;
    ::int32_t index_;
    int user_feedback_;
    bool final_request_in_session_;
    ::int32_t request_latency_ms_;
    ::int32_t complete_latency_ms_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2foptimization_5fguide_2fproto_2ffeatures_2fwallpaper_5fsearch_2eproto;
};
// -------------------------------------------------------------------

class  WallpaperSearchLoggingData final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:optimization_guide.proto.WallpaperSearchLoggingData) */ {
 public:
  inline WallpaperSearchLoggingData() : WallpaperSearchLoggingData(nullptr) {}
  ~WallpaperSearchLoggingData() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(WallpaperSearchLoggingData* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(WallpaperSearchLoggingData));
  }
#endif

  template <typename = void>
  explicit constexpr WallpaperSearchLoggingData(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline WallpaperSearchLoggingData(const WallpaperSearchLoggingData& from) : WallpaperSearchLoggingData(nullptr, from) {}
  inline WallpaperSearchLoggingData(WallpaperSearchLoggingData&& from) noexcept : WallpaperSearchLoggingData(nullptr, ::std::move(from)) {}
  inline WallpaperSearchLoggingData& operator=(const WallpaperSearchLoggingData& from) {
    CopyFrom(from);
    return *this;
  }
  inline WallpaperSearchLoggingData& operator=(WallpaperSearchLoggingData&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const WallpaperSearchLoggingData& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<WallpaperSearchLoggingData>(&WallpaperSearchLoggingData_globals_);
  }
  static constexpr int kIndexInFileMessages = 0;
  friend void swap(WallpaperSearchLoggingData& a, WallpaperSearchLoggingData& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(WallpaperSearchLoggingData* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(WallpaperSearchLoggingData* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  WallpaperSearchLoggingData* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<WallpaperSearchLoggingData>(arena);
  }
  void CopyFrom(const WallpaperSearchLoggingData& from);
  void MergeFrom(const WallpaperSearchLoggingData& from) { WallpaperSearchLoggingData::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(WallpaperSearchLoggingData* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "optimization_guide.proto.WallpaperSearchLoggingData"; }

  explicit WallpaperSearchLoggingData(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  WallpaperSearchLoggingData(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const WallpaperSearchLoggingData& from);
  WallpaperSearchLoggingData(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, WallpaperSearchLoggingData&& from) noexcept
      : WallpaperSearchLoggingData(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kRequestFieldNumber = 1,
    kResponseFieldNumber = 2,
    kQualityFieldNumber = 3,
    kModelExecutionInfoFieldNumber = 4,
  };
  // .optimization_guide.proto.WallpaperSearchRequest request = 1 [features = {
  bool has_request()
      const;
  void clear_request() ;
  const ::optimization_guide::proto::WallpaperSearchRequest& request() const;
  ::optimization_guide::proto::WallpaperSearchRequest* PROTOBUF_NULLABLE release_request();
  ::optimization_guide::proto::WallpaperSearchRequest* PROTOBUF_NONNULL mutable_request();
  void set_allocated_request(::optimization_guide::proto::WallpaperSearchRequest* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_request(::optimization_guide::proto::WallpaperSearchRequest* PROTOBUF_NULLABLE value);
  ::optimization_guide::proto::WallpaperSearchRequest* PROTOBUF_NULLABLE unsafe_arena_release_request();

  private:
  const ::optimization_guide::proto::WallpaperSearchRequest& _internal_request() const;
  ::optimization_guide::proto::WallpaperSearchRequest* PROTOBUF_NONNULL _internal_mutable_request();

  public:
  // .optimization_guide.proto.WallpaperSearchResponse response = 2 [features = {
  bool has_response()
      const;
  void clear_response() ;
  const ::optimization_guide::proto::WallpaperSearchResponse& response() const;
  ::optimization_guide::proto::WallpaperSearchResponse* PROTOBUF_NULLABLE release_response();
  ::optimization_guide::proto::WallpaperSearchResponse* PROTOBUF_NONNULL mutable_response();
  void set_allocated_response(::optimization_guide::proto::WallpaperSearchResponse* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_response(::optimization_guide::proto::WallpaperSearchResponse* PROTOBUF_NULLABLE value);
  ::optimization_guide::proto::WallpaperSearchResponse* PROTOBUF_NULLABLE unsafe_arena_release_response();

  private:
  const ::optimization_guide::proto::WallpaperSearchResponse& _internal_response() const;
  ::optimization_guide::proto::WallpaperSearchResponse* PROTOBUF_NONNULL _internal_mutable_response();

  public:
  // .optimization_guide.proto.WallpaperSearchQuality quality = 3 [features = {
  bool has_quality()
      const;
  void clear_quality() ;
  const ::optimization_guide::proto::WallpaperSearchQuality& quality() const;
  ::optimization_guide::proto::WallpaperSearchQuality* PROTOBUF_NULLABLE release_quality();
  ::optimization_guide::proto::WallpaperSearchQuality* PROTOBUF_NONNULL mutable_quality();
  void set_allocated_quality(::optimization_guide::proto::WallpaperSearchQuality* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_quality(::optimization_guide::proto::WallpaperSearchQuality* PROTOBUF_NULLABLE value);
  ::optimization_guide::proto::WallpaperSearchQuality* PROTOBUF_NULLABLE unsafe_arena_release_quality();

  private:
  const ::optimization_guide::proto::WallpaperSearchQuality& _internal_quality() const;
  ::optimization_guide::proto::WallpaperSearchQuality* PROTOBUF_NONNULL _internal_mutable_quality();

  public:
  // .optimization_guide.proto.ModelExecutionInfo model_execution_info = 4 [features = {
  bool has_model_execution_info()
      const;
  void clear_model_execution_info() ;
  const ::optimization_guide::proto::ModelExecutionInfo& model_execution_info() const;
  ::optimization_guide::proto::ModelExecutionInfo* PROTOBUF_NULLABLE release_model_execution_info();
  ::optimization_guide::proto::ModelExecutionInfo* PROTOBUF_NONNULL mutable_model_execution_info();
  void set_allocated_model_execution_info(::optimization_guide::proto::ModelExecutionInfo* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_model_execution_info(::optimization_guide::proto::ModelExecutionInfo* PROTOBUF_NULLABLE value);
  ::optimization_guide::proto::ModelExecutionInfo* PROTOBUF_NULLABLE unsafe_arena_release_model_execution_info();

  private:
  const ::optimization_guide::proto::ModelExecutionInfo& _internal_model_execution_info() const;
  ::optimization_guide::proto::ModelExecutionInfo* PROTOBUF_NONNULL _internal_mutable_model_execution_info();

  public:
  // @@protoc_insertion_point(class_scope:optimization_guide.proto.WallpaperSearchLoggingData)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          4, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const WallpaperSearchLoggingData& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::optimization_guide::proto::WallpaperSearchRequest* PROTOBUF_NULLABLE request_;
    ::optimization_guide::proto::WallpaperSearchResponse* PROTOBUF_NULLABLE response_;
    ::optimization_guide::proto::WallpaperSearchQuality* PROTOBUF_NULLABLE quality_;
    ::optimization_guide::proto::ModelExecutionInfo* PROTOBUF_NULLABLE model_execution_info_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2foptimization_5fguide_2fproto_2ffeatures_2fwallpaper_5fsearch_2eproto;
};

// ===================================================================




// ===================================================================


#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// -------------------------------------------------------------------

// WallpaperSearchLoggingData

// .optimization_guide.proto.WallpaperSearchRequest request = 1 [features = {
inline bool WallpaperSearchLoggingData::has_request() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.request_ != nullptr);
  return value;
}
inline void WallpaperSearchLoggingData::clear_request() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.request_ != nullptr) _impl_.request_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::optimization_guide::proto::WallpaperSearchRequest& WallpaperSearchLoggingData::_internal_request() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::optimization_guide::proto::WallpaperSearchRequest* p = _impl_.request_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::optimization_guide::proto::WallpaperSearchRequest>(&::optimization_guide::proto::WallpaperSearchRequest_globals_);
}
inline const ::optimization_guide::proto::WallpaperSearchRequest& WallpaperSearchLoggingData::request() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.WallpaperSearchLoggingData.request)
  return _internal_request();
}
inline void WallpaperSearchLoggingData::unsafe_arena_set_allocated_request(
    ::optimization_guide::proto::WallpaperSearchRequest* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.request_);
  }
  _impl_.request_ = reinterpret_cast<::optimization_guide::proto::WallpaperSearchRequest*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:optimization_guide.proto.WallpaperSearchLoggingData.request)
}
inline ::optimization_guide::proto::WallpaperSearchRequest* PROTOBUF_NULLABLE WallpaperSearchLoggingData::release_request() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::optimization_guide::proto::WallpaperSearchRequest* released = _impl_.request_;
  _impl_.request_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::optimization_guide::proto::WallpaperSearchRequest* PROTOBUF_NULLABLE WallpaperSearchLoggingData::unsafe_arena_release_request() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:optimization_guide.proto.WallpaperSearchLoggingData.request)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::optimization_guide::proto::WallpaperSearchRequest* temp = _impl_.request_;
  _impl_.request_ = nullptr;
  return temp;
}
inline ::optimization_guide::proto::WallpaperSearchRequest* PROTOBUF_NONNULL WallpaperSearchLoggingData::_internal_mutable_request() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.request_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::optimization_guide::proto::WallpaperSearchRequest>(GetArena());
    _impl_.request_ = reinterpret_cast<::optimization_guide::proto::WallpaperSearchRequest*>(p);
  }
  return _impl_.request_;
}
inline ::optimization_guide::proto::WallpaperSearchRequest* PROTOBUF_NONNULL WallpaperSearchLoggingData::mutable_request()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::optimization_guide::proto::WallpaperSearchRequest* _msg = _internal_mutable_request();
  // @@protoc_insertion_point(field_mutable:optimization_guide.proto.WallpaperSearchLoggingData.request)
  return _msg;
}
inline void WallpaperSearchLoggingData::set_allocated_request(::optimization_guide::proto::WallpaperSearchRequest* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.request_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.request_ = reinterpret_cast<::optimization_guide::proto::WallpaperSearchRequest*>(value);
  // @@protoc_insertion_point(field_set_allocated:optimization_guide.proto.WallpaperSearchLoggingData.request)
}

// .optimization_guide.proto.WallpaperSearchResponse response = 2 [features = {
inline bool WallpaperSearchLoggingData::has_response() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.response_ != nullptr);
  return value;
}
inline void WallpaperSearchLoggingData::clear_response() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.response_ != nullptr) _impl_.response_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::optimization_guide::proto::WallpaperSearchResponse& WallpaperSearchLoggingData::_internal_response() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::optimization_guide::proto::WallpaperSearchResponse* p = _impl_.response_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::optimization_guide::proto::WallpaperSearchResponse>(&::optimization_guide::proto::WallpaperSearchResponse_globals_);
}
inline const ::optimization_guide::proto::WallpaperSearchResponse& WallpaperSearchLoggingData::response() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.WallpaperSearchLoggingData.response)
  return _internal_response();
}
inline void WallpaperSearchLoggingData::unsafe_arena_set_allocated_response(
    ::optimization_guide::proto::WallpaperSearchResponse* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.response_);
  }
  _impl_.response_ = reinterpret_cast<::optimization_guide::proto::WallpaperSearchResponse*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:optimization_guide.proto.WallpaperSearchLoggingData.response)
}
inline ::optimization_guide::proto::WallpaperSearchResponse* PROTOBUF_NULLABLE WallpaperSearchLoggingData::release_response() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::optimization_guide::proto::WallpaperSearchResponse* released = _impl_.response_;
  _impl_.response_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::optimization_guide::proto::WallpaperSearchResponse* PROTOBUF_NULLABLE WallpaperSearchLoggingData::unsafe_arena_release_response() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:optimization_guide.proto.WallpaperSearchLoggingData.response)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::optimization_guide::proto::WallpaperSearchResponse* temp = _impl_.response_;
  _impl_.response_ = nullptr;
  return temp;
}
inline ::optimization_guide::proto::WallpaperSearchResponse* PROTOBUF_NONNULL WallpaperSearchLoggingData::_internal_mutable_response() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.response_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::optimization_guide::proto::WallpaperSearchResponse>(GetArena());
    _impl_.response_ = reinterpret_cast<::optimization_guide::proto::WallpaperSearchResponse*>(p);
  }
  return _impl_.response_;
}
inline ::optimization_guide::proto::WallpaperSearchResponse* PROTOBUF_NONNULL WallpaperSearchLoggingData::mutable_response()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::optimization_guide::proto::WallpaperSearchResponse* _msg = _internal_mutable_response();
  // @@protoc_insertion_point(field_mutable:optimization_guide.proto.WallpaperSearchLoggingData.response)
  return _msg;
}
inline void WallpaperSearchLoggingData::set_allocated_response(::optimization_guide::proto::WallpaperSearchResponse* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.response_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.response_ = reinterpret_cast<::optimization_guide::proto::WallpaperSearchResponse*>(value);
  // @@protoc_insertion_point(field_set_allocated:optimization_guide.proto.WallpaperSearchLoggingData.response)
}

// .optimization_guide.proto.WallpaperSearchQuality quality = 3 [features = {
inline bool WallpaperSearchLoggingData::has_quality() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.quality_ != nullptr);
  return value;
}
inline void WallpaperSearchLoggingData::clear_quality() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.quality_ != nullptr) _impl_.quality_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::optimization_guide::proto::WallpaperSearchQuality& WallpaperSearchLoggingData::_internal_quality() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::optimization_guide::proto::WallpaperSearchQuality* p = _impl_.quality_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::optimization_guide::proto::WallpaperSearchQuality>(&::optimization_guide::proto::WallpaperSearchQuality_globals_);
}
inline const ::optimization_guide::proto::WallpaperSearchQuality& WallpaperSearchLoggingData::quality() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.WallpaperSearchLoggingData.quality)
  return _internal_quality();
}
inline void WallpaperSearchLoggingData::unsafe_arena_set_allocated_quality(
    ::optimization_guide::proto::WallpaperSearchQuality* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.quality_);
  }
  _impl_.quality_ = reinterpret_cast<::optimization_guide::proto::WallpaperSearchQuality*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:optimization_guide.proto.WallpaperSearchLoggingData.quality)
}
inline ::optimization_guide::proto::WallpaperSearchQuality* PROTOBUF_NULLABLE WallpaperSearchLoggingData::release_quality() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::optimization_guide::proto::WallpaperSearchQuality* released = _impl_.quality_;
  _impl_.quality_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::optimization_guide::proto::WallpaperSearchQuality* PROTOBUF_NULLABLE WallpaperSearchLoggingData::unsafe_arena_release_quality() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:optimization_guide.proto.WallpaperSearchLoggingData.quality)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::optimization_guide::proto::WallpaperSearchQuality* temp = _impl_.quality_;
  _impl_.quality_ = nullptr;
  return temp;
}
inline ::optimization_guide::proto::WallpaperSearchQuality* PROTOBUF_NONNULL WallpaperSearchLoggingData::_internal_mutable_quality() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.quality_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::optimization_guide::proto::WallpaperSearchQuality>(GetArena());
    _impl_.quality_ = reinterpret_cast<::optimization_guide::proto::WallpaperSearchQuality*>(p);
  }
  return _impl_.quality_;
}
inline ::optimization_guide::proto::WallpaperSearchQuality* PROTOBUF_NONNULL WallpaperSearchLoggingData::mutable_quality()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::optimization_guide::proto::WallpaperSearchQuality* _msg = _internal_mutable_quality();
  // @@protoc_insertion_point(field_mutable:optimization_guide.proto.WallpaperSearchLoggingData.quality)
  return _msg;
}
inline void WallpaperSearchLoggingData::set_allocated_quality(::optimization_guide::proto::WallpaperSearchQuality* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.quality_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.quality_ = reinterpret_cast<::optimization_guide::proto::WallpaperSearchQuality*>(value);
  // @@protoc_insertion_point(field_set_allocated:optimization_guide.proto.WallpaperSearchLoggingData.quality)
}

// .optimization_guide.proto.ModelExecutionInfo model_execution_info = 4 [features = {
inline bool WallpaperSearchLoggingData::has_model_execution_info() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.model_execution_info_ != nullptr);
  return value;
}
inline const ::optimization_guide::proto::ModelExecutionInfo& WallpaperSearchLoggingData::_internal_model_execution_info() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::optimization_guide::proto::ModelExecutionInfo* p = _impl_.model_execution_info_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::optimization_guide::proto::ModelExecutionInfo>(&::optimization_guide::proto::ModelExecutionInfo_globals_);
}
inline const ::optimization_guide::proto::ModelExecutionInfo& WallpaperSearchLoggingData::model_execution_info() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.WallpaperSearchLoggingData.model_execution_info)
  return _internal_model_execution_info();
}
inline void WallpaperSearchLoggingData::unsafe_arena_set_allocated_model_execution_info(
    ::optimization_guide::proto::ModelExecutionInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.model_execution_info_);
  }
  _impl_.model_execution_info_ = reinterpret_cast<::optimization_guide::proto::ModelExecutionInfo*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:optimization_guide.proto.WallpaperSearchLoggingData.model_execution_info)
}
inline ::optimization_guide::proto::ModelExecutionInfo* PROTOBUF_NULLABLE WallpaperSearchLoggingData::release_model_execution_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::optimization_guide::proto::ModelExecutionInfo* released = _impl_.model_execution_info_;
  _impl_.model_execution_info_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::optimization_guide::proto::ModelExecutionInfo* PROTOBUF_NULLABLE WallpaperSearchLoggingData::unsafe_arena_release_model_execution_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:optimization_guide.proto.WallpaperSearchLoggingData.model_execution_info)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::optimization_guide::proto::ModelExecutionInfo* temp = _impl_.model_execution_info_;
  _impl_.model_execution_info_ = nullptr;
  return temp;
}
inline ::optimization_guide::proto::ModelExecutionInfo* PROTOBUF_NONNULL WallpaperSearchLoggingData::_internal_mutable_model_execution_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.model_execution_info_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::optimization_guide::proto::ModelExecutionInfo>(GetArena());
    _impl_.model_execution_info_ = reinterpret_cast<::optimization_guide::proto::ModelExecutionInfo*>(p);
  }
  return _impl_.model_execution_info_;
}
inline ::optimization_guide::proto::ModelExecutionInfo* PROTOBUF_NONNULL WallpaperSearchLoggingData::mutable_model_execution_info()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::optimization_guide::proto::ModelExecutionInfo* _msg = _internal_mutable_model_execution_info();
  // @@protoc_insertion_point(field_mutable:optimization_guide.proto.WallpaperSearchLoggingData.model_execution_info)
  return _msg;
}
inline void WallpaperSearchLoggingData::set_allocated_model_execution_info(::optimization_guide::proto::ModelExecutionInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.model_execution_info_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::MessageLite*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.model_execution_info_ = reinterpret_cast<::optimization_guide::proto::ModelExecutionInfo*>(value);
  // @@protoc_insertion_point(field_set_allocated:optimization_guide.proto.WallpaperSearchLoggingData.model_execution_info)
}

// -------------------------------------------------------------------

// WallpaperSearchRequest

// .optimization_guide.proto.Descriptors descriptors = 2;
inline bool WallpaperSearchRequest::has_descriptors() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.descriptors_ != nullptr);
  return value;
}
inline void WallpaperSearchRequest::clear_descriptors() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.descriptors_ != nullptr) _impl_.descriptors_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::optimization_guide::proto::Descriptors& WallpaperSearchRequest::_internal_descriptors() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::optimization_guide::proto::Descriptors* p = _impl_.descriptors_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::optimization_guide::proto::Descriptors>(&::optimization_guide::proto::Descriptors_globals_);
}
inline const ::optimization_guide::proto::Descriptors& WallpaperSearchRequest::descriptors() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.WallpaperSearchRequest.descriptors)
  return _internal_descriptors();
}
inline void WallpaperSearchRequest::unsafe_arena_set_allocated_descriptors(
    ::optimization_guide::proto::Descriptors* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.descriptors_);
  }
  _impl_.descriptors_ = reinterpret_cast<::optimization_guide::proto::Descriptors*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:optimization_guide.proto.WallpaperSearchRequest.descriptors)
}
inline ::optimization_guide::proto::Descriptors* PROTOBUF_NULLABLE WallpaperSearchRequest::release_descriptors() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::optimization_guide::proto::Descriptors* released = _impl_.descriptors_;
  _impl_.descriptors_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::optimization_guide::proto::Descriptors* PROTOBUF_NULLABLE WallpaperSearchRequest::unsafe_arena_release_descriptors() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:optimization_guide.proto.WallpaperSearchRequest.descriptors)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::optimization_guide::proto::Descriptors* temp = _impl_.descriptors_;
  _impl_.descriptors_ = nullptr;
  return temp;
}
inline ::optimization_guide::proto::Descriptors* PROTOBUF_NONNULL WallpaperSearchRequest::_internal_mutable_descriptors() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.descriptors_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::optimization_guide::proto::Descriptors>(GetArena());
    _impl_.descriptors_ = reinterpret_cast<::optimization_guide::proto::Descriptors*>(p);
  }
  return _impl_.descriptors_;
}
inline ::optimization_guide::proto::Descriptors* PROTOBUF_NONNULL WallpaperSearchRequest::mutable_descriptors()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::optimization_guide::proto::Descriptors* _msg = _internal_mutable_descriptors();
  // @@protoc_insertion_point(field_mutable:optimization_guide.proto.WallpaperSearchRequest.descriptors)
  return _msg;
}
inline void WallpaperSearchRequest::set_allocated_descriptors(::optimization_guide::proto::Descriptors* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.descriptors_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.descriptors_ = reinterpret_cast<::optimization_guide::proto::Descriptors*>(value);
  // @@protoc_insertion_point(field_set_allocated:optimization_guide.proto.WallpaperSearchRequest.descriptors)
}

// -------------------------------------------------------------------

// Descriptors

// string subject = 1 [features = {
inline void Descriptors::clear_subject() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subject_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& Descriptors::subject() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.Descriptors.subject)
  return _internal_subject();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Descriptors::set_subject(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.subject_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:optimization_guide.proto.Descriptors.subject)
}
inline ::std::string* PROTOBUF_NONNULL Descriptors::mutable_subject()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_subject();
  // @@protoc_insertion_point(field_mutable:optimization_guide.proto.Descriptors.subject)
  return _s;
}
inline const ::std::string& Descriptors::_internal_subject() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.subject_.Get();
}
inline void Descriptors::_internal_set_subject(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subject_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Descriptors::_internal_mutable_subject() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.subject_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Descriptors::release_subject() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:optimization_guide.proto.Descriptors.subject)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.subject_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.subject_.Set("", GetArena());
  }
  return released;
}
inline void Descriptors::set_allocated_subject(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.subject_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.subject_.IsDefault()) {
    _impl_.subject_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:optimization_guide.proto.Descriptors.subject)
}

// string style = 2 [features = {
inline void Descriptors::clear_style() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.style_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& Descriptors::style() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.Descriptors.style)
  return _internal_style();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Descriptors::set_style(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.style_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:optimization_guide.proto.Descriptors.style)
}
inline ::std::string* PROTOBUF_NONNULL Descriptors::mutable_style()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_style();
  // @@protoc_insertion_point(field_mutable:optimization_guide.proto.Descriptors.style)
  return _s;
}
inline const ::std::string& Descriptors::_internal_style() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.style_.Get();
}
inline void Descriptors::_internal_set_style(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.style_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Descriptors::_internal_mutable_style() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.style_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Descriptors::release_style() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:optimization_guide.proto.Descriptors.style)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.style_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.style_.Set("", GetArena());
  }
  return released;
}
inline void Descriptors::set_allocated_style(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.style_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.style_.IsDefault()) {
    _impl_.style_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:optimization_guide.proto.Descriptors.style)
}

// string mood = 3 [features = {
inline void Descriptors::clear_mood() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mood_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& Descriptors::mood() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.Descriptors.mood)
  return _internal_mood();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Descriptors::set_mood(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.mood_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:optimization_guide.proto.Descriptors.mood)
}
inline ::std::string* PROTOBUF_NONNULL Descriptors::mutable_mood()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_mood();
  // @@protoc_insertion_point(field_mutable:optimization_guide.proto.Descriptors.mood)
  return _s;
}
inline const ::std::string& Descriptors::_internal_mood() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.mood_.Get();
}
inline void Descriptors::_internal_set_mood(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mood_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Descriptors::_internal_mutable_mood() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.mood_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Descriptors::release_mood() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:optimization_guide.proto.Descriptors.mood)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.mood_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.mood_.Set("", GetArena());
  }
  return released;
}
inline void Descriptors::set_allocated_mood(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.mood_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.mood_.IsDefault()) {
    _impl_.mood_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:optimization_guide.proto.Descriptors.mood)
}

// string color = 4 [features = {
inline void Descriptors::clear_color() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.color_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& Descriptors::color() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.Descriptors.color)
  return _internal_color();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Descriptors::set_color(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.color_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:optimization_guide.proto.Descriptors.color)
}
inline ::std::string* PROTOBUF_NONNULL Descriptors::mutable_color()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_color();
  // @@protoc_insertion_point(field_mutable:optimization_guide.proto.Descriptors.color)
  return _s;
}
inline const ::std::string& Descriptors::_internal_color() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.color_.Get();
}
inline void Descriptors::_internal_set_color(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.color_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Descriptors::_internal_mutable_color() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.color_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Descriptors::release_color() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:optimization_guide.proto.Descriptors.color)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.color_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.color_.Set("", GetArena());
  }
  return released;
}
inline void Descriptors::set_allocated_color(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.color_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.color_.IsDefault()) {
    _impl_.color_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:optimization_guide.proto.Descriptors.color)
}

// -------------------------------------------------------------------

// WallpaperSearchResponse

// repeated .optimization_guide.proto.Image images = 2;
inline int WallpaperSearchResponse::_internal_images_size() const {
  return _internal_images().size();
}
inline int WallpaperSearchResponse::images_size() const {
  return _internal_images_size();
}
inline void WallpaperSearchResponse::clear_images() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.images_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::optimization_guide::proto::Image& WallpaperSearchResponse::images(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.WallpaperSearchResponse.images)
  return _internal_images().Get(index);
}
inline ::optimization_guide::proto::Image* PROTOBUF_NONNULL WallpaperSearchResponse::mutable_images(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:optimization_guide.proto.WallpaperSearchResponse.images)
  return _internal_mutable_images()->Mutable(index);
}
inline ::optimization_guide::proto::Image* PROTOBUF_NONNULL WallpaperSearchResponse::add_images()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::optimization_guide::proto::Image* _add =
      _internal_mutable_images()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:optimization_guide.proto.WallpaperSearchResponse.images)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::optimization_guide::proto::Image>& WallpaperSearchResponse::images() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:optimization_guide.proto.WallpaperSearchResponse.images)
  return _internal_images();
}
inline ::google::protobuf::RepeatedPtrField<::optimization_guide::proto::Image>* PROTOBUF_NONNULL
WallpaperSearchResponse::mutable_images() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:optimization_guide.proto.WallpaperSearchResponse.images)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_images();
}
inline const ::google::protobuf::RepeatedPtrField<::optimization_guide::proto::Image>&
WallpaperSearchResponse::_internal_images() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.images_;
}
inline ::google::protobuf::RepeatedPtrField<::optimization_guide::proto::Image>* PROTOBUF_NONNULL
WallpaperSearchResponse::_internal_mutable_images() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.images_;
}

// -------------------------------------------------------------------

// Image

// bytes encoded_image = 1 [features = {
inline void Image::clear_encoded_image() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.encoded_image_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& Image::encoded_image() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.Image.encoded_image)
  return _internal_encoded_image();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Image::set_encoded_image(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.encoded_image_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:optimization_guide.proto.Image.encoded_image)
}
inline ::std::string* PROTOBUF_NONNULL Image::mutable_encoded_image()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_encoded_image();
  // @@protoc_insertion_point(field_mutable:optimization_guide.proto.Image.encoded_image)
  return _s;
}
inline const ::std::string& Image::_internal_encoded_image() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.encoded_image_.Get();
}
inline void Image::_internal_set_encoded_image(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.encoded_image_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Image::_internal_mutable_encoded_image() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.encoded_image_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Image::release_encoded_image() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:optimization_guide.proto.Image.encoded_image)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.encoded_image_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.encoded_image_.Set("", GetArena());
  }
  return released;
}
inline void Image::set_allocated_encoded_image(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.encoded_image_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.encoded_image_.IsDefault()) {
    _impl_.encoded_image_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:optimization_guide.proto.Image.encoded_image)
}

// int64 image_id = 2 [features = {
inline void Image::clear_image_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.image_id_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::int64_t Image::image_id() const {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.Image.image_id)
  return _internal_image_id();
}
inline void Image::set_image_id(::int64_t value) {
  _internal_set_image_id(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:optimization_guide.proto.Image.image_id)
}
inline ::int64_t Image::_internal_image_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.image_id_;
}
inline void Image::_internal_set_image_id(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.image_id_ = value;
}

// -------------------------------------------------------------------

// WallpaperSearchQuality

// int64 session_id = 1 [features = {
inline void WallpaperSearchQuality::clear_session_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.session_id_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::int64_t WallpaperSearchQuality::session_id() const {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.WallpaperSearchQuality.session_id)
  return _internal_session_id();
}
inline void WallpaperSearchQuality::set_session_id(::int64_t value) {
  _internal_set_session_id(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:optimization_guide.proto.WallpaperSearchQuality.session_id)
}
inline ::int64_t WallpaperSearchQuality::_internal_session_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.session_id_;
}
inline void WallpaperSearchQuality::_internal_set_session_id(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.session_id_ = value;
}

// repeated .optimization_guide.proto.WallpaperSearchImageQuality images_quality = 2;
inline int WallpaperSearchQuality::_internal_images_quality_size() const {
  return _internal_images_quality().size();
}
inline int WallpaperSearchQuality::images_quality_size() const {
  return _internal_images_quality_size();
}
inline void WallpaperSearchQuality::clear_images_quality() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.images_quality_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::optimization_guide::proto::WallpaperSearchImageQuality& WallpaperSearchQuality::images_quality(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.WallpaperSearchQuality.images_quality)
  return _internal_images_quality().Get(index);
}
inline ::optimization_guide::proto::WallpaperSearchImageQuality* PROTOBUF_NONNULL WallpaperSearchQuality::mutable_images_quality(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:optimization_guide.proto.WallpaperSearchQuality.images_quality)
  return _internal_mutable_images_quality()->Mutable(index);
}
inline ::optimization_guide::proto::WallpaperSearchImageQuality* PROTOBUF_NONNULL WallpaperSearchQuality::add_images_quality()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::optimization_guide::proto::WallpaperSearchImageQuality* _add =
      _internal_mutable_images_quality()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:optimization_guide.proto.WallpaperSearchQuality.images_quality)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::optimization_guide::proto::WallpaperSearchImageQuality>& WallpaperSearchQuality::images_quality() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:optimization_guide.proto.WallpaperSearchQuality.images_quality)
  return _internal_images_quality();
}
inline ::google::protobuf::RepeatedPtrField<::optimization_guide::proto::WallpaperSearchImageQuality>* PROTOBUF_NONNULL
WallpaperSearchQuality::mutable_images_quality() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:optimization_guide.proto.WallpaperSearchQuality.images_quality)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_images_quality();
}
inline const ::google::protobuf::RepeatedPtrField<::optimization_guide::proto::WallpaperSearchImageQuality>&
WallpaperSearchQuality::_internal_images_quality() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.images_quality_;
}
inline ::google::protobuf::RepeatedPtrField<::optimization_guide::proto::WallpaperSearchImageQuality>* PROTOBUF_NONNULL
WallpaperSearchQuality::_internal_mutable_images_quality() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.images_quality_;
}

// int32 index = 3 [features = {
inline void WallpaperSearchQuality::clear_index() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.index_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::int32_t WallpaperSearchQuality::index() const {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.WallpaperSearchQuality.index)
  return _internal_index();
}
inline void WallpaperSearchQuality::set_index(::int32_t value) {
  _internal_set_index(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:optimization_guide.proto.WallpaperSearchQuality.index)
}
inline ::int32_t WallpaperSearchQuality::_internal_index() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.index_;
}
inline void WallpaperSearchQuality::_internal_set_index(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.index_ = value;
}

// .optimization_guide.proto.UserFeedback user_feedback = 4 [features = {
inline void WallpaperSearchQuality::clear_user_feedback() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.user_feedback_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::optimization_guide::proto::UserFeedback WallpaperSearchQuality::user_feedback() const {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.WallpaperSearchQuality.user_feedback)
  return _internal_user_feedback();
}
inline void WallpaperSearchQuality::set_user_feedback(::optimization_guide::proto::UserFeedback value) {
  _internal_set_user_feedback(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:optimization_guide.proto.WallpaperSearchQuality.user_feedback)
}
inline ::optimization_guide::proto::UserFeedback WallpaperSearchQuality::_internal_user_feedback() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::optimization_guide::proto::UserFeedback>(_impl_.user_feedback_);
}
inline void WallpaperSearchQuality::_internal_set_user_feedback(::optimization_guide::proto::UserFeedback value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.user_feedback_ = value;
}

// bool final_request_in_session = 5 [features = {
inline void WallpaperSearchQuality::clear_final_request_in_session() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.final_request_in_session_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline bool WallpaperSearchQuality::final_request_in_session() const {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.WallpaperSearchQuality.final_request_in_session)
  return _internal_final_request_in_session();
}
inline void WallpaperSearchQuality::set_final_request_in_session(bool value) {
  _internal_set_final_request_in_session(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:optimization_guide.proto.WallpaperSearchQuality.final_request_in_session)
}
inline bool WallpaperSearchQuality::_internal_final_request_in_session() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.final_request_in_session_;
}
inline void WallpaperSearchQuality::_internal_set_final_request_in_session(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.final_request_in_session_ = value;
}

// int32 request_latency_ms = 6 [features = {
inline void WallpaperSearchQuality::clear_request_latency_ms() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.request_latency_ms_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::int32_t WallpaperSearchQuality::request_latency_ms() const {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.WallpaperSearchQuality.request_latency_ms)
  return _internal_request_latency_ms();
}
inline void WallpaperSearchQuality::set_request_latency_ms(::int32_t value) {
  _internal_set_request_latency_ms(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:optimization_guide.proto.WallpaperSearchQuality.request_latency_ms)
}
inline ::int32_t WallpaperSearchQuality::_internal_request_latency_ms() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.request_latency_ms_;
}
inline void WallpaperSearchQuality::_internal_set_request_latency_ms(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.request_latency_ms_ = value;
}

// int32 complete_latency_ms = 7 [features = {
inline void WallpaperSearchQuality::clear_complete_latency_ms() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.complete_latency_ms_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::int32_t WallpaperSearchQuality::complete_latency_ms() const {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.WallpaperSearchQuality.complete_latency_ms)
  return _internal_complete_latency_ms();
}
inline void WallpaperSearchQuality::set_complete_latency_ms(::int32_t value) {
  _internal_set_complete_latency_ms(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:optimization_guide.proto.WallpaperSearchQuality.complete_latency_ms)
}
inline ::int32_t WallpaperSearchQuality::_internal_complete_latency_ms() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.complete_latency_ms_;
}
inline void WallpaperSearchQuality::_internal_set_complete_latency_ms(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.complete_latency_ms_ = value;
}

// -------------------------------------------------------------------

// WallpaperSearchImageQuality

// int64 image_id = 1 [features = {
inline void WallpaperSearchImageQuality::clear_image_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.image_id_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::int64_t WallpaperSearchImageQuality::image_id() const {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.WallpaperSearchImageQuality.image_id)
  return _internal_image_id();
}
inline void WallpaperSearchImageQuality::set_image_id(::int64_t value) {
  _internal_set_image_id(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:optimization_guide.proto.WallpaperSearchImageQuality.image_id)
}
inline ::int64_t WallpaperSearchImageQuality::_internal_image_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.image_id_;
}
inline void WallpaperSearchImageQuality::_internal_set_image_id(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.image_id_ = value;
}

// bool previewed = 2 [features = {
inline void WallpaperSearchImageQuality::clear_previewed() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.previewed_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool WallpaperSearchImageQuality::previewed() const {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.WallpaperSearchImageQuality.previewed)
  return _internal_previewed();
}
inline void WallpaperSearchImageQuality::set_previewed(bool value) {
  _internal_set_previewed(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:optimization_guide.proto.WallpaperSearchImageQuality.previewed)
}
inline bool WallpaperSearchImageQuality::_internal_previewed() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.previewed_;
}
inline void WallpaperSearchImageQuality::_internal_set_previewed(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.previewed_ = value;
}

// bool selected = 3 [features = {
inline void WallpaperSearchImageQuality::clear_selected() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.selected_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline bool WallpaperSearchImageQuality::selected() const {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.WallpaperSearchImageQuality.selected)
  return _internal_selected();
}
inline void WallpaperSearchImageQuality::set_selected(bool value) {
  _internal_set_selected(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:optimization_guide.proto.WallpaperSearchImageQuality.selected)
}
inline bool WallpaperSearchImageQuality::_internal_selected() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.selected_;
}
inline void WallpaperSearchImageQuality::_internal_set_selected(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.selected_ = value;
}

// int32 preview_latency_ms = 4 [features = {
inline bool WallpaperSearchImageQuality::has_preview_latency_ms() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void WallpaperSearchImageQuality::clear_preview_latency_ms() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.preview_latency_ms_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::int32_t WallpaperSearchImageQuality::preview_latency_ms() const {
  // @@protoc_insertion_point(field_get:optimization_guide.proto.WallpaperSearchImageQuality.preview_latency_ms)
  return _internal_preview_latency_ms();
}
inline void WallpaperSearchImageQuality::set_preview_latency_ms(::int32_t value) {
  _internal_set_preview_latency_ms(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:optimization_guide.proto.WallpaperSearchImageQuality.preview_latency_ms)
}
inline ::int32_t WallpaperSearchImageQuality::_internal_preview_latency_ms() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.preview_latency_ms_;
}
inline void WallpaperSearchImageQuality::_internal_set_preview_latency_ms(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.preview_latency_ms_ = value;
}

#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif  // __GNUC__

// @@protoc_insertion_point(namespace_scope)
}  // namespace proto
}  // namespace optimization_guide


// @@protoc_insertion_point(global_scope)

#include "google/protobuf/port_undef.inc"
// clang-format on

#endif  // components_2foptimization_5fguide_2fproto_2ffeatures_2fwallpaper_5fsearch_2eproto_2epb_2eh
