/**
 * Autogenerated by Thrift for /opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated @nocommit
 */

#pragma once

#include <thrift/lib/cpp2/gen/module_types_h.h>

namespace apache::thrift {
namespace ident {
struct value;
struct name;
struct template_;
struct type;
struct ref;
struct name;
struct adaptedType;
struct underlyingName;
struct extraNamespace;
struct moveOnly;
struct atomic;
struct name;
struct noinline;
struct type;
} // namespace ident
namespace detail {
#ifndef APACHE_THRIFT_ACCESSOR_value
#define APACHE_THRIFT_ACCESSOR_value
APACHE_THRIFT_DEFINE_ACCESSOR(value);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_name
#define APACHE_THRIFT_ACCESSOR_name
APACHE_THRIFT_DEFINE_ACCESSOR(name);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_template_
#define APACHE_THRIFT_ACCESSOR_template_
APACHE_THRIFT_DEFINE_ACCESSOR(template_);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_type
#define APACHE_THRIFT_ACCESSOR_type
APACHE_THRIFT_DEFINE_ACCESSOR(type);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_ref
#define APACHE_THRIFT_ACCESSOR_ref
APACHE_THRIFT_DEFINE_ACCESSOR(ref);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_name
#define APACHE_THRIFT_ACCESSOR_name
APACHE_THRIFT_DEFINE_ACCESSOR(name);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_adaptedType
#define APACHE_THRIFT_ACCESSOR_adaptedType
APACHE_THRIFT_DEFINE_ACCESSOR(adaptedType);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_underlyingName
#define APACHE_THRIFT_ACCESSOR_underlyingName
APACHE_THRIFT_DEFINE_ACCESSOR(underlyingName);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_extraNamespace
#define APACHE_THRIFT_ACCESSOR_extraNamespace
APACHE_THRIFT_DEFINE_ACCESSOR(extraNamespace);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_moveOnly
#define APACHE_THRIFT_ACCESSOR_moveOnly
APACHE_THRIFT_DEFINE_ACCESSOR(moveOnly);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_atomic
#define APACHE_THRIFT_ACCESSOR_atomic
APACHE_THRIFT_DEFINE_ACCESSOR(atomic);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_name
#define APACHE_THRIFT_ACCESSOR_name
APACHE_THRIFT_DEFINE_ACCESSOR(name);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_noinline
#define APACHE_THRIFT_ACCESSOR_noinline
APACHE_THRIFT_DEFINE_ACCESSOR(noinline);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_type
#define APACHE_THRIFT_ACCESSOR_type
APACHE_THRIFT_DEFINE_ACCESSOR(type);
#endif
} // namespace detail
} // namespace apache::thrift

// BEGIN declare_enums
namespace facebook::thrift::annotation::cpp {

/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "RefType", "kind": "enum" } */
enum class RefType {
  Unique = 0,
  Shared = 1,
  SharedMutable = 2,
};

/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "EnumUnderlyingType", "kind": "enum" } */
enum class EnumUnderlyingType {
  I8 = 0,
  U8 = 1,
  I16 = 2,
  U16 = 3,
  U32 = 4,
};

} // namespace facebook::thrift::annotation::cpp

template<> struct std::hash<::facebook::thrift::annotation::cpp::RefType> :
  ::apache::thrift::detail::enum_hash<::facebook::thrift::annotation::cpp::RefType> {};
template<> struct std::hash<::facebook::thrift::annotation::cpp::EnumUnderlyingType> :
  ::apache::thrift::detail::enum_hash<::facebook::thrift::annotation::cpp::EnumUnderlyingType> {};

namespace apache::thrift {

template <> struct TEnumTraits<::facebook::thrift::annotation::cpp::RefType> {
  using type = ::facebook::thrift::annotation::cpp::RefType;

  static constexpr std::size_t const size = 3;
  static folly::Range<type const*> const values;
  static folly::Range<std::string_view const*> const names;
  static const std::string_view __fbthrift_module_name_internal_do_not_use;

  static bool findName(type value, std::string_view* out) noexcept;
  static bool findValue(std::string_view name, type* out) noexcept;

  FOLLY_ERASE static std::string_view typeName() noexcept {
    return "RefType";
  }

  FOLLY_ERASE static constexpr std::string_view moduleName() noexcept {
    return "cpp";
  }

  FOLLY_ERASE static constexpr std::string_view __fbthrift_thrift_uri() noexcept {
    return "facebook.com/thrift/annotation/cpp/RefType";
  }

  static char const* findName(type value) noexcept {
    std::string_view ret;
    (void)findName(value, &ret);
    return ret.data();
  }
  static constexpr type min() { return type::Unique; }
  static constexpr type max() { return type::SharedMutable; }
};

template <> struct TEnumTraits<::facebook::thrift::annotation::cpp::EnumUnderlyingType> {
  using type = ::facebook::thrift::annotation::cpp::EnumUnderlyingType;

  static constexpr std::size_t const size = 5;
  static folly::Range<type const*> const values;
  static folly::Range<std::string_view const*> const names;
  static const std::string_view __fbthrift_module_name_internal_do_not_use;

  static bool findName(type value, std::string_view* out) noexcept;
  static bool findValue(std::string_view name, type* out) noexcept;

  FOLLY_ERASE static std::string_view typeName() noexcept {
    return "EnumUnderlyingType";
  }

  FOLLY_ERASE static constexpr std::string_view moduleName() noexcept {
    return "cpp";
  }

  FOLLY_ERASE static constexpr std::string_view __fbthrift_thrift_uri() noexcept {
    return "facebook.com/thrift/annotation/cpp/EnumUnderlyingType";
  }

  static char const* findName(type value) noexcept {
    std::string_view ret;
    (void)findName(value, &ret);
    return ret.data();
  }
  static constexpr type min() { return type::I8; }
  static constexpr type max() { return type::U32; }
};

} // namespace apache::thrift
// END declare_enums
// BEGIN forward_declare
namespace facebook::thrift::annotation::cpp {
class Name;
class Type;
class Ref;
class Lazy;
class DisableLazyChecksum;
class Adapter;
class PackIsset;
class MinimizePadding;
class ScopedEnumAsUnionType;
class FieldInterceptor;
class UseOpEncode;
class EnumType;
class Frozen2Exclude;
class Frozen2RequiresCompleteContainerParams;
class ProcessInEbThreadUnsafe;
class UseCursorSerialization;
class GenerateDeprecatedHeaderClientMethods;
class AllowLegacyNonOptionalRef;
class DeprecatedTerseWrite;
class AllowLegacyDeprecatedTerseWritesRef;
class EnableCustomTypeOrdering;
class GenerateServiceMethodDecorator;
} // namespace facebook::thrift::annotation::cpp
// END forward_declare
namespace apache::thrift::detail::annotation {
} // namespace apache::thrift::detail::annotation

namespace apache::thrift::detail::qualifier {
} // namespace apache::thrift::detail::qualifier

// BEGIN hash_and_equal_to
// END hash_and_equal_to
namespace facebook::thrift::annotation::cpp {
using ::apache::thrift::detail::operator!=;
using ::apache::thrift::detail::operator>;
using ::apache::thrift::detail::operator<=;
using ::apache::thrift::detail::operator>=;


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "Name", "kind": "struct" } */
class Name final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 1;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0,1};

  using __fbthrift_reflection_idents = folly::tag_t<
    ::apache::thrift::ident::value
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
    ::apache::thrift::type::string_t
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = Name;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  Name();

  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  Name(apache::thrift::FragileConstructor, ::std::string value__arg);

  Name(Name&&) noexcept;

  Name(const Name& src);


  Name& operator=(Name&&) noexcept;
  Name& operator=(const Name& src);

  ~Name();

 private:
  ::std::string __fbthrift_field_value;
 private:
  apache::thrift::detail::isset_bitset<1, apache::thrift::detail::IssetBitsetOption::Unpacked> __isset;

 public:

  bool operator==(const Name&) const;
  bool operator<(const Name&) const;

  /** Glean { "field": "value" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> value_ref() const& {
    return {this->__fbthrift_field_value, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "value" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> value_ref() & {
    return {this->__fbthrift_field_value, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "value" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> value_ref() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_value), __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "value" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> value() const& {
    return {this->__fbthrift_field_value, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "value" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> value() & {
    return {this->__fbthrift_field_value, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "value" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> value() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_value), __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "value" } */
  [[deprecated("Use `FOO.value().value()` instead of `FOO.get_value()`")]]
  const ::std::string& get_value() const& {
    return __fbthrift_field_value;
  }

  /** Glean { "field": "value" } */
  [[deprecated("Use `FOO.value().value()` instead of `FOO.get_value()`")]]
  ::std::string get_value() && {
    return static_cast<::std::string&&>(__fbthrift_field_value);
  }

  /** Glean { "field": "value" } */
  template <typename T_Name_value_struct_setter = ::std::string>
  [[deprecated("Use `FOO.value() = BAR` instead of `FOO.set_value(BAR)`")]]
  ::std::string& set_value(T_Name_value_struct_setter&& value_) {
    value_ref() = std::forward<T_Name_value_struct_setter>(value_);
    return __fbthrift_field_value;
  }

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<Name>;
  friend void swap(Name& a, Name& b);
};

template <class Protocol_>
unsigned long Name::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "Type", "kind": "struct" } */
class Type final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 2;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0,1,2};

  using __fbthrift_reflection_idents = folly::tag_t<
    ::apache::thrift::ident::name,
    ::apache::thrift::ident::template_
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
    ::apache::thrift::type::string_t,
    ::apache::thrift::type::string_t
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = Type;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  Type();

  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  Type(apache::thrift::FragileConstructor, ::std::string name__arg, ::std::string template___arg);

  Type(Type&&) noexcept;

  Type(const Type& src);


  Type& operator=(Type&&) noexcept;
  Type& operator=(const Type& src);

  ~Type();

 private:
  ::std::string __fbthrift_field_name;
 private:
  ::std::string __fbthrift_field_template_;
 private:
  apache::thrift::detail::isset_bitset<2, apache::thrift::detail::IssetBitsetOption::Unpacked> __isset;

 public:

  bool operator==(const Type&) const;
  bool operator<(const Type&) const;

  /** Glean { "field": "name" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> name_ref() const& {
    return {this->__fbthrift_field_name, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "name" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> name_ref() & {
    return {this->__fbthrift_field_name, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "name" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> name_ref() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_name), __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "name" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> name() const& {
    return {this->__fbthrift_field_name, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "name" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> name() & {
    return {this->__fbthrift_field_name, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "name" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> name() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_name), __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "template_" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> template__ref() const& {
    return {this->__fbthrift_field_template_, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "template_" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> template__ref() & {
    return {this->__fbthrift_field_template_, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "template_" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> template__ref() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_template_), __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "template_" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> template_() const& {
    return {this->__fbthrift_field_template_, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "template_" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> template_() & {
    return {this->__fbthrift_field_template_, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "template_" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> template_() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_template_), __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "name" } */
  [[deprecated("Use `FOO.name().value()` instead of `FOO.get_name()`")]]
  const ::std::string& get_name() const& {
    return __fbthrift_field_name;
  }

  /** Glean { "field": "name" } */
  [[deprecated("Use `FOO.name().value()` instead of `FOO.get_name()`")]]
  ::std::string get_name() && {
    return static_cast<::std::string&&>(__fbthrift_field_name);
  }

  /** Glean { "field": "name" } */
  template <typename T_Type_name_struct_setter = ::std::string>
  [[deprecated("Use `FOO.name() = BAR` instead of `FOO.set_name(BAR)`")]]
  ::std::string& set_name(T_Type_name_struct_setter&& name_) {
    name_ref() = std::forward<T_Type_name_struct_setter>(name_);
    return __fbthrift_field_name;
  }

  /** Glean { "field": "template_" } */
  [[deprecated("Use `FOO.template_().value()` instead of `FOO.get_template_()`")]]
  const ::std::string& get_template_() const& {
    return __fbthrift_field_template_;
  }

  /** Glean { "field": "template_" } */
  [[deprecated("Use `FOO.template_().value()` instead of `FOO.get_template_()`")]]
  ::std::string get_template_() && {
    return static_cast<::std::string&&>(__fbthrift_field_template_);
  }

  /** Glean { "field": "template_" } */
  template <typename T_Type_template__struct_setter = ::std::string>
  [[deprecated("Use `FOO.template_() = BAR` instead of `FOO.set_template_(BAR)`")]]
  ::std::string& set_template_(T_Type_template__struct_setter&& template__) {
    template__ref() = std::forward<T_Type_template__struct_setter>(template__);
    return __fbthrift_field_template_;
  }

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<Type>;
  friend void swap(Type& a, Type& b);
};

template <class Protocol_>
unsigned long Type::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "Ref", "kind": "struct" } */
class Ref final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 1;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0,1};

  using __fbthrift_reflection_idents = folly::tag_t<
    ::apache::thrift::ident::type
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
    ::apache::thrift::type::enum_t<::facebook::thrift::annotation::cpp::RefType>
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = Ref;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  Ref() :
      __fbthrift_field_type() {
  }
  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  Ref(apache::thrift::FragileConstructor, ::facebook::thrift::annotation::cpp::RefType type__arg);

  Ref(Ref&&) = default;

  Ref(const Ref&) = default;


  Ref& operator=(Ref&&) = default;

  Ref& operator=(const Ref&) = default;
 private:
  ::facebook::thrift::annotation::cpp::RefType __fbthrift_field_type;
 private:
  apache::thrift::detail::isset_bitset<1, apache::thrift::detail::IssetBitsetOption::Unpacked> __isset;

 public:

  bool operator==(const Ref&) const;
  bool operator<(const Ref&) const;

  /** Glean { "field": "type" } */
  template <typename..., typename fbthrift_T = ::facebook::thrift::annotation::cpp::RefType>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> type_ref() const& {
    return {this->__fbthrift_field_type, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "type" } */
  template <typename..., typename fbthrift_T = ::facebook::thrift::annotation::cpp::RefType>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> type_ref() & {
    return {this->__fbthrift_field_type, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "type" } */
  template <typename..., typename fbthrift_T = ::facebook::thrift::annotation::cpp::RefType>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> type_ref() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_type), __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "type" } */
  template <typename..., typename fbthrift_T = ::facebook::thrift::annotation::cpp::RefType>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> type() const& {
    return {this->__fbthrift_field_type, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "type" } */
  template <typename..., typename fbthrift_T = ::facebook::thrift::annotation::cpp::RefType>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> type() & {
    return {this->__fbthrift_field_type, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "type" } */
  template <typename..., typename fbthrift_T = ::facebook::thrift::annotation::cpp::RefType>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> type() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_type), __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "type" } */
  [[deprecated("Use `FOO.type().value()` instead of `FOO.get_type()`")]]
  ::facebook::thrift::annotation::cpp::RefType get_type() const;

  /** Glean { "field": "type" } */
  [[deprecated("Use `FOO.type() = BAR` instead of `FOO.set_type(BAR)`")]]
  ::facebook::thrift::annotation::cpp::RefType& set_type(::facebook::thrift::annotation::cpp::RefType type_);

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<Ref>;
  friend void swap(Ref& a, Ref& b);
};

template <class Protocol_>
unsigned long Ref::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "Lazy", "kind": "struct" } */
class Lazy final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 1;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0,1};

  using __fbthrift_reflection_idents = folly::tag_t<
    ::apache::thrift::ident::ref
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
    ::apache::thrift::type::bool_t
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = Lazy;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  Lazy() :
      __fbthrift_field_ref(false) {
  }
  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  Lazy(apache::thrift::FragileConstructor, bool ref__arg);

  Lazy(Lazy&&) = default;

  Lazy(const Lazy&) = default;


  Lazy& operator=(Lazy&&) = default;

  Lazy& operator=(const Lazy&) = default;
 private:
  bool __fbthrift_field_ref;
 private:
  apache::thrift::detail::isset_bitset<1, apache::thrift::detail::IssetBitsetOption::Unpacked> __isset;

 public:

  bool operator==(const Lazy&) const;
  bool operator<(const Lazy&) const;

  /** Glean { "field": "ref" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> ref_ref() const& {
    return {this->__fbthrift_field_ref, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "ref" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> ref_ref() & {
    return {this->__fbthrift_field_ref, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "ref" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> ref_ref() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_ref), __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "ref" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> ref() const& {
    return {this->__fbthrift_field_ref, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "ref" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> ref() & {
    return {this->__fbthrift_field_ref, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "ref" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> ref() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_ref), __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "ref" } */
  [[deprecated("Use `FOO.ref().value()` instead of `FOO.get_ref()`")]]
  bool get_ref() const;

  /** Glean { "field": "ref" } */
  [[deprecated("Use `FOO.ref() = BAR` instead of `FOO.set_ref(BAR)`")]]
  bool& set_ref(bool ref_);

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<Lazy>;
  friend void swap(Lazy& a, Lazy& b);
};

template <class Protocol_>
unsigned long Lazy::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "DisableLazyChecksum", "kind": "struct" } */
class DisableLazyChecksum final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 0;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0};

  using __fbthrift_reflection_idents = folly::tag_t<
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = DisableLazyChecksum;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  DisableLazyChecksum() {
  }
  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  DisableLazyChecksum(apache::thrift::FragileConstructor);

  DisableLazyChecksum(DisableLazyChecksum&&) = default;

  DisableLazyChecksum(const DisableLazyChecksum&) = default;


  DisableLazyChecksum& operator=(DisableLazyChecksum&&) = default;

  DisableLazyChecksum& operator=(const DisableLazyChecksum&) = default;

 public:

  bool operator==(const DisableLazyChecksum&) const;
  bool operator<(const DisableLazyChecksum&) const;

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<DisableLazyChecksum>;
  friend void swap(DisableLazyChecksum& a, DisableLazyChecksum& b);
};

template <class Protocol_>
unsigned long DisableLazyChecksum::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "Adapter", "kind": "struct" } */
class Adapter final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 5;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0,1,2,3,4,5};

  using __fbthrift_reflection_idents = folly::tag_t<
    ::apache::thrift::ident::name,
    ::apache::thrift::ident::adaptedType,
    ::apache::thrift::ident::underlyingName,
    ::apache::thrift::ident::extraNamespace,
    ::apache::thrift::ident::moveOnly
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
    ::apache::thrift::type::string_t,
    ::apache::thrift::type::string_t,
    ::apache::thrift::type::string_t,
    ::apache::thrift::type::string_t,
    ::apache::thrift::type::bool_t
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = Adapter;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  Adapter();

  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  Adapter(apache::thrift::FragileConstructor, ::std::string name__arg, ::std::string adaptedType__arg, ::std::string underlyingName__arg, ::std::string extraNamespace__arg, bool moveOnly__arg);

  Adapter(Adapter&&) noexcept;

  Adapter(const Adapter& src);


  Adapter& operator=(Adapter&&) noexcept;
  Adapter& operator=(const Adapter& src);

  ~Adapter();

 private:
  ::std::string __fbthrift_field_name;
 private:
  ::std::string __fbthrift_field_adaptedType;
 private:
  ::std::string __fbthrift_field_underlyingName;
 private:
  ::std::string __fbthrift_field_extraNamespace;
 private:
  bool __fbthrift_field_moveOnly;
 private:
  apache::thrift::detail::isset_bitset<5, apache::thrift::detail::IssetBitsetOption::Unpacked> __isset;

 public:

  bool operator==(const Adapter&) const;
  bool operator<(const Adapter&) const;

  /** Glean { "field": "name" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> name_ref() const& {
    return {this->__fbthrift_field_name, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "name" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> name_ref() & {
    return {this->__fbthrift_field_name, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "name" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> name_ref() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_name), __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "name" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> name() const& {
    return {this->__fbthrift_field_name, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "name" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> name() & {
    return {this->__fbthrift_field_name, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "name" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> name() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_name), __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "adaptedType" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> adaptedType_ref() const& {
    return {this->__fbthrift_field_adaptedType, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "adaptedType" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> adaptedType_ref() & {
    return {this->__fbthrift_field_adaptedType, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "adaptedType" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> adaptedType_ref() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_adaptedType), __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "adaptedType" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> adaptedType() const& {
    return {this->__fbthrift_field_adaptedType, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "adaptedType" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> adaptedType() & {
    return {this->__fbthrift_field_adaptedType, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "adaptedType" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> adaptedType() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_adaptedType), __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "underlyingName" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> underlyingName_ref() const& {
    return {this->__fbthrift_field_underlyingName, __isset.at(2), __isset.bit(2)};
  }

  /** Glean { "field": "underlyingName" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> underlyingName_ref() & {
    return {this->__fbthrift_field_underlyingName, __isset.at(2), __isset.bit(2)};
  }

  /** Glean { "field": "underlyingName" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> underlyingName_ref() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_underlyingName), __isset.at(2), __isset.bit(2)};
  }

  /** Glean { "field": "underlyingName" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> underlyingName() const& {
    return {this->__fbthrift_field_underlyingName, __isset.at(2), __isset.bit(2)};
  }

  /** Glean { "field": "underlyingName" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> underlyingName() & {
    return {this->__fbthrift_field_underlyingName, __isset.at(2), __isset.bit(2)};
  }

  /** Glean { "field": "underlyingName" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> underlyingName() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_underlyingName), __isset.at(2), __isset.bit(2)};
  }

  /** Glean { "field": "extraNamespace" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> extraNamespace_ref() const& {
    return {this->__fbthrift_field_extraNamespace, __isset.at(3), __isset.bit(3)};
  }

  /** Glean { "field": "extraNamespace" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> extraNamespace_ref() & {
    return {this->__fbthrift_field_extraNamespace, __isset.at(3), __isset.bit(3)};
  }

  /** Glean { "field": "extraNamespace" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> extraNamespace_ref() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_extraNamespace), __isset.at(3), __isset.bit(3)};
  }

  /** Glean { "field": "extraNamespace" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> extraNamespace() const& {
    return {this->__fbthrift_field_extraNamespace, __isset.at(3), __isset.bit(3)};
  }

  /** Glean { "field": "extraNamespace" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> extraNamespace() & {
    return {this->__fbthrift_field_extraNamespace, __isset.at(3), __isset.bit(3)};
  }

  /** Glean { "field": "extraNamespace" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> extraNamespace() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_extraNamespace), __isset.at(3), __isset.bit(3)};
  }

  /** Glean { "field": "moveOnly" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> moveOnly_ref() const& {
    return {this->__fbthrift_field_moveOnly, __isset.at(4), __isset.bit(4)};
  }

  /** Glean { "field": "moveOnly" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> moveOnly_ref() & {
    return {this->__fbthrift_field_moveOnly, __isset.at(4), __isset.bit(4)};
  }

  /** Glean { "field": "moveOnly" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> moveOnly_ref() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_moveOnly), __isset.at(4), __isset.bit(4)};
  }

  /** Glean { "field": "moveOnly" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> moveOnly() const& {
    return {this->__fbthrift_field_moveOnly, __isset.at(4), __isset.bit(4)};
  }

  /** Glean { "field": "moveOnly" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> moveOnly() & {
    return {this->__fbthrift_field_moveOnly, __isset.at(4), __isset.bit(4)};
  }

  /** Glean { "field": "moveOnly" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> moveOnly() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_moveOnly), __isset.at(4), __isset.bit(4)};
  }

  /** Glean { "field": "name" } */
  [[deprecated("Use `FOO.name().value()` instead of `FOO.get_name()`")]]
  const ::std::string& get_name() const& {
    return __fbthrift_field_name;
  }

  /** Glean { "field": "name" } */
  [[deprecated("Use `FOO.name().value()` instead of `FOO.get_name()`")]]
  ::std::string get_name() && {
    return static_cast<::std::string&&>(__fbthrift_field_name);
  }

  /** Glean { "field": "name" } */
  template <typename T_Adapter_name_struct_setter = ::std::string>
  [[deprecated("Use `FOO.name() = BAR` instead of `FOO.set_name(BAR)`")]]
  ::std::string& set_name(T_Adapter_name_struct_setter&& name_) {
    name_ref() = std::forward<T_Adapter_name_struct_setter>(name_);
    return __fbthrift_field_name;
  }

  /** Glean { "field": "adaptedType" } */
  [[deprecated("Use `FOO.adaptedType().value()` instead of `FOO.get_adaptedType()`")]]
  const ::std::string& get_adaptedType() const& {
    return __fbthrift_field_adaptedType;
  }

  /** Glean { "field": "adaptedType" } */
  [[deprecated("Use `FOO.adaptedType().value()` instead of `FOO.get_adaptedType()`")]]
  ::std::string get_adaptedType() && {
    return static_cast<::std::string&&>(__fbthrift_field_adaptedType);
  }

  /** Glean { "field": "adaptedType" } */
  template <typename T_Adapter_adaptedType_struct_setter = ::std::string>
  [[deprecated("Use `FOO.adaptedType() = BAR` instead of `FOO.set_adaptedType(BAR)`")]]
  ::std::string& set_adaptedType(T_Adapter_adaptedType_struct_setter&& adaptedType_) {
    adaptedType_ref() = std::forward<T_Adapter_adaptedType_struct_setter>(adaptedType_);
    return __fbthrift_field_adaptedType;
  }

  /** Glean { "field": "underlyingName" } */
  [[deprecated("Use `FOO.underlyingName().value()` instead of `FOO.get_underlyingName()`")]]
  const ::std::string& get_underlyingName() const& {
    return __fbthrift_field_underlyingName;
  }

  /** Glean { "field": "underlyingName" } */
  [[deprecated("Use `FOO.underlyingName().value()` instead of `FOO.get_underlyingName()`")]]
  ::std::string get_underlyingName() && {
    return static_cast<::std::string&&>(__fbthrift_field_underlyingName);
  }

  /** Glean { "field": "underlyingName" } */
  template <typename T_Adapter_underlyingName_struct_setter = ::std::string>
  [[deprecated("Use `FOO.underlyingName() = BAR` instead of `FOO.set_underlyingName(BAR)`")]]
  ::std::string& set_underlyingName(T_Adapter_underlyingName_struct_setter&& underlyingName_) {
    underlyingName_ref() = std::forward<T_Adapter_underlyingName_struct_setter>(underlyingName_);
    return __fbthrift_field_underlyingName;
  }

  /** Glean { "field": "extraNamespace" } */
  [[deprecated("Use `FOO.extraNamespace().value()` instead of `FOO.get_extraNamespace()`")]]
  const ::std::string& get_extraNamespace() const& {
    return __fbthrift_field_extraNamespace;
  }

  /** Glean { "field": "extraNamespace" } */
  [[deprecated("Use `FOO.extraNamespace().value()` instead of `FOO.get_extraNamespace()`")]]
  ::std::string get_extraNamespace() && {
    return static_cast<::std::string&&>(__fbthrift_field_extraNamespace);
  }

  /** Glean { "field": "extraNamespace" } */
  template <typename T_Adapter_extraNamespace_struct_setter = ::std::string>
  [[deprecated("Use `FOO.extraNamespace() = BAR` instead of `FOO.set_extraNamespace(BAR)`")]]
  ::std::string& set_extraNamespace(T_Adapter_extraNamespace_struct_setter&& extraNamespace_) {
    extraNamespace_ref() = std::forward<T_Adapter_extraNamespace_struct_setter>(extraNamespace_);
    return __fbthrift_field_extraNamespace;
  }

  /** Glean { "field": "moveOnly" } */
  [[deprecated("Use `FOO.moveOnly().value()` instead of `FOO.get_moveOnly()`")]]
  bool get_moveOnly() const;

  /** Glean { "field": "moveOnly" } */
  [[deprecated("Use `FOO.moveOnly() = BAR` instead of `FOO.set_moveOnly(BAR)`")]]
  bool& set_moveOnly(bool moveOnly_);

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<Adapter>;
  friend void swap(Adapter& a, Adapter& b);
};

template <class Protocol_>
unsigned long Adapter::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "PackIsset", "kind": "struct" } */
class PackIsset final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 1;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0,1};

  using __fbthrift_reflection_idents = folly::tag_t<
    ::apache::thrift::ident::atomic
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
    ::apache::thrift::type::bool_t
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = PackIsset;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  PackIsset() :
      __fbthrift_field_atomic(true) {
  }
  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  PackIsset(apache::thrift::FragileConstructor, bool atomic__arg);

  PackIsset(PackIsset&&) = default;

  PackIsset(const PackIsset&) = default;


  PackIsset& operator=(PackIsset&&) = default;

  PackIsset& operator=(const PackIsset&) = default;
 private:
  bool __fbthrift_field_atomic;
 private:
  apache::thrift::detail::isset_bitset<1, apache::thrift::detail::IssetBitsetOption::Unpacked> __isset;

 public:

  bool operator==(const PackIsset&) const;
  bool operator<(const PackIsset&) const;

  /** Glean { "field": "atomic" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> atomic_ref() const& {
    return {this->__fbthrift_field_atomic, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "atomic" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> atomic_ref() & {
    return {this->__fbthrift_field_atomic, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "atomic" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> atomic_ref() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_atomic), __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "atomic" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> atomic() const& {
    return {this->__fbthrift_field_atomic, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "atomic" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> atomic() & {
    return {this->__fbthrift_field_atomic, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "atomic" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> atomic() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_atomic), __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "atomic" } */
  [[deprecated("Use `FOO.atomic().value()` instead of `FOO.get_atomic()`")]]
  bool get_atomic() const;

  /** Glean { "field": "atomic" } */
  [[deprecated("Use `FOO.atomic() = BAR` instead of `FOO.set_atomic(BAR)`")]]
  bool& set_atomic(bool atomic_);

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<PackIsset>;
  friend void swap(PackIsset& a, PackIsset& b);
};

template <class Protocol_>
unsigned long PackIsset::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "MinimizePadding", "kind": "struct" } */
class MinimizePadding final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 0;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0};

  using __fbthrift_reflection_idents = folly::tag_t<
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = MinimizePadding;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  MinimizePadding() {
  }
  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  MinimizePadding(apache::thrift::FragileConstructor);

  MinimizePadding(MinimizePadding&&) = default;

  MinimizePadding(const MinimizePadding&) = default;


  MinimizePadding& operator=(MinimizePadding&&) = default;

  MinimizePadding& operator=(const MinimizePadding&) = default;

 public:

  bool operator==(const MinimizePadding&) const;
  bool operator<(const MinimizePadding&) const;

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<MinimizePadding>;
  friend void swap(MinimizePadding& a, MinimizePadding& b);
};

template <class Protocol_>
unsigned long MinimizePadding::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "ScopedEnumAsUnionType", "kind": "struct" } */
class ScopedEnumAsUnionType final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 0;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0};

  using __fbthrift_reflection_idents = folly::tag_t<
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = ScopedEnumAsUnionType;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  ScopedEnumAsUnionType() {
  }
  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  ScopedEnumAsUnionType(apache::thrift::FragileConstructor);

  ScopedEnumAsUnionType(ScopedEnumAsUnionType&&) = default;

  ScopedEnumAsUnionType(const ScopedEnumAsUnionType&) = default;


  ScopedEnumAsUnionType& operator=(ScopedEnumAsUnionType&&) = default;

  ScopedEnumAsUnionType& operator=(const ScopedEnumAsUnionType&) = default;

 public:

  bool operator==(const ScopedEnumAsUnionType&) const;
  bool operator<(const ScopedEnumAsUnionType&) const;

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<ScopedEnumAsUnionType>;
  friend void swap(ScopedEnumAsUnionType& a, ScopedEnumAsUnionType& b);
};

template <class Protocol_>
unsigned long ScopedEnumAsUnionType::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "FieldInterceptor", "kind": "struct" } */
class FieldInterceptor final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 2;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0,1,2};

  using __fbthrift_reflection_idents = folly::tag_t<
    ::apache::thrift::ident::name,
    ::apache::thrift::ident::noinline
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
    ::apache::thrift::type::string_t,
    ::apache::thrift::type::bool_t
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = FieldInterceptor;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  FieldInterceptor();

  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  FieldInterceptor(apache::thrift::FragileConstructor, ::std::string name__arg, bool noinline__arg);

  FieldInterceptor(FieldInterceptor&&) noexcept;

  FieldInterceptor(const FieldInterceptor& src);


  FieldInterceptor& operator=(FieldInterceptor&&) noexcept;
  FieldInterceptor& operator=(const FieldInterceptor& src);

  ~FieldInterceptor();

 private:
  ::std::string __fbthrift_field_name;
 private:
  bool __fbthrift_field_noinline;
 private:
  apache::thrift::detail::isset_bitset<2, apache::thrift::detail::IssetBitsetOption::Unpacked> __isset;

 public:

  bool operator==(const FieldInterceptor&) const;
  bool operator<(const FieldInterceptor&) const;

  /** Glean { "field": "name" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> name_ref() const& {
    return {this->__fbthrift_field_name, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "name" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> name_ref() & {
    return {this->__fbthrift_field_name, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "name" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> name_ref() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_name), __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "name" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> name() const& {
    return {this->__fbthrift_field_name, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "name" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> name() & {
    return {this->__fbthrift_field_name, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "name" } */
  template <typename..., typename fbthrift_T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> name() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_name), __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "noinline" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> noinline_ref() const& {
    return {this->__fbthrift_field_noinline, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "noinline" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> noinline_ref() & {
    return {this->__fbthrift_field_noinline, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "noinline" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> noinline_ref() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_noinline), __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "noinline" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> noinline() const& {
    return {this->__fbthrift_field_noinline, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "noinline" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> noinline() & {
    return {this->__fbthrift_field_noinline, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "noinline" } */
  template <typename..., typename fbthrift_T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> noinline() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_noinline), __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "name" } */
  [[deprecated("Use `FOO.name().value()` instead of `FOO.get_name()`")]]
  const ::std::string& get_name() const& {
    return __fbthrift_field_name;
  }

  /** Glean { "field": "name" } */
  [[deprecated("Use `FOO.name().value()` instead of `FOO.get_name()`")]]
  ::std::string get_name() && {
    return static_cast<::std::string&&>(__fbthrift_field_name);
  }

  /** Glean { "field": "name" } */
  template <typename T_FieldInterceptor_name_struct_setter = ::std::string>
  [[deprecated("Use `FOO.name() = BAR` instead of `FOO.set_name(BAR)`")]]
  ::std::string& set_name(T_FieldInterceptor_name_struct_setter&& name_) {
    name_ref() = std::forward<T_FieldInterceptor_name_struct_setter>(name_);
    return __fbthrift_field_name;
  }

  /** Glean { "field": "noinline" } */
  [[deprecated("Use `FOO.noinline().value()` instead of `FOO.get_noinline()`")]]
  bool get_noinline() const;

  /** Glean { "field": "noinline" } */
  [[deprecated("Use `FOO.noinline() = BAR` instead of `FOO.set_noinline(BAR)`")]]
  bool& set_noinline(bool noinline_);

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<FieldInterceptor>;
  friend void swap(FieldInterceptor& a, FieldInterceptor& b);
};

template <class Protocol_>
unsigned long FieldInterceptor::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "UseOpEncode", "kind": "struct" } */
class UseOpEncode final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 0;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0};

  using __fbthrift_reflection_idents = folly::tag_t<
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = UseOpEncode;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  UseOpEncode() {
  }
  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  UseOpEncode(apache::thrift::FragileConstructor);

  UseOpEncode(UseOpEncode&&) = default;

  UseOpEncode(const UseOpEncode&) = default;


  UseOpEncode& operator=(UseOpEncode&&) = default;

  UseOpEncode& operator=(const UseOpEncode&) = default;

 public:

  bool operator==(const UseOpEncode&) const;
  bool operator<(const UseOpEncode&) const;

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<UseOpEncode>;
  friend void swap(UseOpEncode& a, UseOpEncode& b);
};

template <class Protocol_>
unsigned long UseOpEncode::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "EnumType", "kind": "struct" } */
class EnumType final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 1;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0,1};

  using __fbthrift_reflection_idents = folly::tag_t<
    ::apache::thrift::ident::type
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
    ::apache::thrift::type::enum_t<::facebook::thrift::annotation::cpp::EnumUnderlyingType>
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = EnumType;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  EnumType() :
      __fbthrift_field_type() {
  }
  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  EnumType(apache::thrift::FragileConstructor, ::facebook::thrift::annotation::cpp::EnumUnderlyingType type__arg);

  EnumType(EnumType&&) = default;

  EnumType(const EnumType&) = default;


  EnumType& operator=(EnumType&&) = default;

  EnumType& operator=(const EnumType&) = default;
 private:
  ::facebook::thrift::annotation::cpp::EnumUnderlyingType __fbthrift_field_type;
 private:
  apache::thrift::detail::isset_bitset<1, apache::thrift::detail::IssetBitsetOption::Unpacked> __isset;

 public:

  bool operator==(const EnumType&) const;
  bool operator<(const EnumType&) const;

  /** Glean { "field": "type" } */
  template <typename..., typename fbthrift_T = ::facebook::thrift::annotation::cpp::EnumUnderlyingType>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> type_ref() const& {
    return {this->__fbthrift_field_type, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "type" } */
  template <typename..., typename fbthrift_T = ::facebook::thrift::annotation::cpp::EnumUnderlyingType>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> type_ref() & {
    return {this->__fbthrift_field_type, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "type" } */
  template <typename..., typename fbthrift_T = ::facebook::thrift::annotation::cpp::EnumUnderlyingType>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> type_ref() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_type), __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "type" } */
  template <typename..., typename fbthrift_T = ::facebook::thrift::annotation::cpp::EnumUnderlyingType>
  FOLLY_ERASE ::apache::thrift::field_ref<const fbthrift_T&> type() const& {
    return {this->__fbthrift_field_type, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "type" } */
  template <typename..., typename fbthrift_T = ::facebook::thrift::annotation::cpp::EnumUnderlyingType>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&> type() & {
    return {this->__fbthrift_field_type, __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "type" } */
  template <typename..., typename fbthrift_T = ::facebook::thrift::annotation::cpp::EnumUnderlyingType>
  FOLLY_ERASE ::apache::thrift::field_ref<fbthrift_T&&> type() && {
    return {static_cast<fbthrift_T&&>(this->__fbthrift_field_type), __isset.at(0), __isset.bit(0)};
  }

  /** Glean { "field": "type" } */
  [[deprecated("Use `FOO.type().value()` instead of `FOO.get_type()`")]]
  ::facebook::thrift::annotation::cpp::EnumUnderlyingType get_type() const;

  /** Glean { "field": "type" } */
  [[deprecated("Use `FOO.type() = BAR` instead of `FOO.set_type(BAR)`")]]
  ::facebook::thrift::annotation::cpp::EnumUnderlyingType& set_type(::facebook::thrift::annotation::cpp::EnumUnderlyingType type_);

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<EnumType>;
  friend void swap(EnumType& a, EnumType& b);
};

template <class Protocol_>
unsigned long EnumType::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "Frozen2Exclude", "kind": "struct" } */
class Frozen2Exclude final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 0;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0};

  using __fbthrift_reflection_idents = folly::tag_t<
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = Frozen2Exclude;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  Frozen2Exclude() {
  }
  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  Frozen2Exclude(apache::thrift::FragileConstructor);

  Frozen2Exclude(Frozen2Exclude&&) = default;

  Frozen2Exclude(const Frozen2Exclude&) = default;


  Frozen2Exclude& operator=(Frozen2Exclude&&) = default;

  Frozen2Exclude& operator=(const Frozen2Exclude&) = default;

 public:

  bool operator==(const Frozen2Exclude&) const;
  bool operator<(const Frozen2Exclude&) const;

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<Frozen2Exclude>;
  friend void swap(Frozen2Exclude& a, Frozen2Exclude& b);
};

template <class Protocol_>
unsigned long Frozen2Exclude::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "Frozen2RequiresCompleteContainerParams", "kind": "struct" } */
class Frozen2RequiresCompleteContainerParams final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 0;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0};

  using __fbthrift_reflection_idents = folly::tag_t<
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = Frozen2RequiresCompleteContainerParams;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  Frozen2RequiresCompleteContainerParams() {
  }
  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  Frozen2RequiresCompleteContainerParams(apache::thrift::FragileConstructor);

  Frozen2RequiresCompleteContainerParams(Frozen2RequiresCompleteContainerParams&&) = default;

  Frozen2RequiresCompleteContainerParams(const Frozen2RequiresCompleteContainerParams&) = default;


  Frozen2RequiresCompleteContainerParams& operator=(Frozen2RequiresCompleteContainerParams&&) = default;

  Frozen2RequiresCompleteContainerParams& operator=(const Frozen2RequiresCompleteContainerParams&) = default;

 public:

  bool operator==(const Frozen2RequiresCompleteContainerParams&) const;
  bool operator<(const Frozen2RequiresCompleteContainerParams&) const;

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<Frozen2RequiresCompleteContainerParams>;
  friend void swap(Frozen2RequiresCompleteContainerParams& a, Frozen2RequiresCompleteContainerParams& b);
};

template <class Protocol_>
unsigned long Frozen2RequiresCompleteContainerParams::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "ProcessInEbThreadUnsafe", "kind": "struct" } */
class ProcessInEbThreadUnsafe final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 0;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0};

  using __fbthrift_reflection_idents = folly::tag_t<
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = ProcessInEbThreadUnsafe;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  ProcessInEbThreadUnsafe() {
  }
  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  ProcessInEbThreadUnsafe(apache::thrift::FragileConstructor);

  ProcessInEbThreadUnsafe(ProcessInEbThreadUnsafe&&) = default;

  ProcessInEbThreadUnsafe(const ProcessInEbThreadUnsafe&) = default;


  ProcessInEbThreadUnsafe& operator=(ProcessInEbThreadUnsafe&&) = default;

  ProcessInEbThreadUnsafe& operator=(const ProcessInEbThreadUnsafe&) = default;

 public:

  bool operator==(const ProcessInEbThreadUnsafe&) const;
  bool operator<(const ProcessInEbThreadUnsafe&) const;

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<ProcessInEbThreadUnsafe>;
  friend void swap(ProcessInEbThreadUnsafe& a, ProcessInEbThreadUnsafe& b);
};

template <class Protocol_>
unsigned long ProcessInEbThreadUnsafe::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "UseCursorSerialization", "kind": "struct" } */
class UseCursorSerialization final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 0;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0};

  using __fbthrift_reflection_idents = folly::tag_t<
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = UseCursorSerialization;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  UseCursorSerialization() {
  }
  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  UseCursorSerialization(apache::thrift::FragileConstructor);

  UseCursorSerialization(UseCursorSerialization&&) = default;

  UseCursorSerialization(const UseCursorSerialization&) = default;


  UseCursorSerialization& operator=(UseCursorSerialization&&) = default;

  UseCursorSerialization& operator=(const UseCursorSerialization&) = default;

 public:

  bool operator==(const UseCursorSerialization&) const;
  bool operator<(const UseCursorSerialization&) const;

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<UseCursorSerialization>;
  friend void swap(UseCursorSerialization& a, UseCursorSerialization& b);
};

template <class Protocol_>
unsigned long UseCursorSerialization::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "GenerateDeprecatedHeaderClientMethods", "kind": "struct" } */
class GenerateDeprecatedHeaderClientMethods final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 0;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0};

  using __fbthrift_reflection_idents = folly::tag_t<
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = GenerateDeprecatedHeaderClientMethods;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  GenerateDeprecatedHeaderClientMethods() {
  }
  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  GenerateDeprecatedHeaderClientMethods(apache::thrift::FragileConstructor);

  GenerateDeprecatedHeaderClientMethods(GenerateDeprecatedHeaderClientMethods&&) = default;

  GenerateDeprecatedHeaderClientMethods(const GenerateDeprecatedHeaderClientMethods&) = default;


  GenerateDeprecatedHeaderClientMethods& operator=(GenerateDeprecatedHeaderClientMethods&&) = default;

  GenerateDeprecatedHeaderClientMethods& operator=(const GenerateDeprecatedHeaderClientMethods&) = default;

 public:

  bool operator==(const GenerateDeprecatedHeaderClientMethods&) const;
  bool operator<(const GenerateDeprecatedHeaderClientMethods&) const;

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<GenerateDeprecatedHeaderClientMethods>;
  friend void swap(GenerateDeprecatedHeaderClientMethods& a, GenerateDeprecatedHeaderClientMethods& b);
};

template <class Protocol_>
unsigned long GenerateDeprecatedHeaderClientMethods::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "AllowLegacyNonOptionalRef", "kind": "struct" } */
class AllowLegacyNonOptionalRef final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 0;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0};

  using __fbthrift_reflection_idents = folly::tag_t<
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = AllowLegacyNonOptionalRef;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  AllowLegacyNonOptionalRef() {
  }
  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  AllowLegacyNonOptionalRef(apache::thrift::FragileConstructor);

  AllowLegacyNonOptionalRef(AllowLegacyNonOptionalRef&&) = default;

  AllowLegacyNonOptionalRef(const AllowLegacyNonOptionalRef&) = default;


  AllowLegacyNonOptionalRef& operator=(AllowLegacyNonOptionalRef&&) = default;

  AllowLegacyNonOptionalRef& operator=(const AllowLegacyNonOptionalRef&) = default;

 public:

  bool operator==(const AllowLegacyNonOptionalRef&) const;
  bool operator<(const AllowLegacyNonOptionalRef&) const;

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<AllowLegacyNonOptionalRef>;
  friend void swap(AllowLegacyNonOptionalRef& a, AllowLegacyNonOptionalRef& b);
};

template <class Protocol_>
unsigned long AllowLegacyNonOptionalRef::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "DeprecatedTerseWrite", "kind": "struct" } */
class DeprecatedTerseWrite final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 0;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0};

  using __fbthrift_reflection_idents = folly::tag_t<
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = DeprecatedTerseWrite;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  DeprecatedTerseWrite() {
  }
  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  DeprecatedTerseWrite(apache::thrift::FragileConstructor);

  DeprecatedTerseWrite(DeprecatedTerseWrite&&) = default;

  DeprecatedTerseWrite(const DeprecatedTerseWrite&) = default;


  DeprecatedTerseWrite& operator=(DeprecatedTerseWrite&&) = default;

  DeprecatedTerseWrite& operator=(const DeprecatedTerseWrite&) = default;

 public:

  bool operator==(const DeprecatedTerseWrite&) const;
  bool operator<(const DeprecatedTerseWrite&) const;

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<DeprecatedTerseWrite>;
  friend void swap(DeprecatedTerseWrite& a, DeprecatedTerseWrite& b);
};

template <class Protocol_>
unsigned long DeprecatedTerseWrite::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "AllowLegacyDeprecatedTerseWritesRef", "kind": "struct" } */
class AllowLegacyDeprecatedTerseWritesRef final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 0;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0};

  using __fbthrift_reflection_idents = folly::tag_t<
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = AllowLegacyDeprecatedTerseWritesRef;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  AllowLegacyDeprecatedTerseWritesRef() {
  }
  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  AllowLegacyDeprecatedTerseWritesRef(apache::thrift::FragileConstructor);

  AllowLegacyDeprecatedTerseWritesRef(AllowLegacyDeprecatedTerseWritesRef&&) = default;

  AllowLegacyDeprecatedTerseWritesRef(const AllowLegacyDeprecatedTerseWritesRef&) = default;


  AllowLegacyDeprecatedTerseWritesRef& operator=(AllowLegacyDeprecatedTerseWritesRef&&) = default;

  AllowLegacyDeprecatedTerseWritesRef& operator=(const AllowLegacyDeprecatedTerseWritesRef&) = default;

 public:

  bool operator==(const AllowLegacyDeprecatedTerseWritesRef&) const;
  bool operator<(const AllowLegacyDeprecatedTerseWritesRef&) const;

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<AllowLegacyDeprecatedTerseWritesRef>;
  friend void swap(AllowLegacyDeprecatedTerseWritesRef& a, AllowLegacyDeprecatedTerseWritesRef& b);
};

template <class Protocol_>
unsigned long AllowLegacyDeprecatedTerseWritesRef::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "EnableCustomTypeOrdering", "kind": "struct" } */
class EnableCustomTypeOrdering final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 0;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0};

  using __fbthrift_reflection_idents = folly::tag_t<
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = EnableCustomTypeOrdering;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  EnableCustomTypeOrdering() {
  }
  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  EnableCustomTypeOrdering(apache::thrift::FragileConstructor);

  EnableCustomTypeOrdering(EnableCustomTypeOrdering&&) = default;

  EnableCustomTypeOrdering(const EnableCustomTypeOrdering&) = default;


  EnableCustomTypeOrdering& operator=(EnableCustomTypeOrdering&&) = default;

  EnableCustomTypeOrdering& operator=(const EnableCustomTypeOrdering&) = default;

 public:

  bool operator==(const EnableCustomTypeOrdering&) const;
  bool operator<(const EnableCustomTypeOrdering&) const;

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<EnableCustomTypeOrdering>;
  friend void swap(EnableCustomTypeOrdering& a, EnableCustomTypeOrdering& b);
};

template <class Protocol_>
unsigned long EnableCustomTypeOrdering::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.08.04.00/thrift/annotation/cpp.thrift", "name": "GenerateServiceMethodDecorator", "kind": "struct" } */
class GenerateServiceMethodDecorator final  {
 private:
  friend struct ::apache::thrift::detail::st::struct_private_access;
  template<class> friend struct ::apache::thrift::detail::invoke_reffer;

  //  used by a static_assert in the corresponding source
  static constexpr bool __fbthrift_cpp2_gen_json = false;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  static std::string_view __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  template <class ...>
  FOLLY_ERASE static constexpr std::string_view __fbthrift_get_module_name() noexcept {
    return "cpp";
  }
  static constexpr std::size_t __fbthrift_num_fields = 0;

  static constexpr const int16_t __fbthrift_reflection_field_ids[] = {0};

  using __fbthrift_reflection_idents = folly::tag_t<
  >;

  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

 public:
  using __fbthrift_cpp2_type = GenerateServiceMethodDecorator;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  GenerateServiceMethodDecorator() {
  }
  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  GenerateServiceMethodDecorator(apache::thrift::FragileConstructor);

  GenerateServiceMethodDecorator(GenerateServiceMethodDecorator&&) = default;

  GenerateServiceMethodDecorator(const GenerateServiceMethodDecorator&) = default;


  GenerateServiceMethodDecorator& operator=(GenerateServiceMethodDecorator&&) = default;

  GenerateServiceMethodDecorator& operator=(const GenerateServiceMethodDecorator&) = default;

 public:

  bool operator==(const GenerateServiceMethodDecorator&) const;
  bool operator<(const GenerateServiceMethodDecorator&) const;

  template <class Protocol_>
  unsigned long read(Protocol_* iprot);
  template <class Protocol_>
  uint32_t serializedSize(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t serializedSizeZC(Protocol_ const* prot_) const;
  template <class Protocol_>
  uint32_t write(Protocol_* prot_) const;

 private:
  template <class Protocol_>
  void readNoXfer(Protocol_* iprot);

  friend class ::apache::thrift::Cpp2Ops<GenerateServiceMethodDecorator>;
  friend void swap(GenerateServiceMethodDecorator& a, GenerateServiceMethodDecorator& b);
};

template <class Protocol_>
unsigned long GenerateServiceMethodDecorator::read(Protocol_* iprot) {
  auto _xferStart = iprot->getCursorPosition();
  readNoXfer(iprot);
  return iprot->getCursorPosition() - _xferStart;
}


} // namespace facebook::thrift::annotation::cpp

namespace apache::thrift::detail {
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::Name, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\xab\x9d\x62\xf8\x12\x59\x0b\xc4\xfe\x18\x1b\xf2\x37\xc1\x7f\xf4", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::Type, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\x28\x8e\xdc\x27\xda\x90\xc0\xd7\x2a\x6d\x39\x04\x60\x0b\x89\xb1", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::Ref, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\x4e\x56\x72\x1c\xd3\xb9\x6c\x08\x89\x9c\x3c\xe5\xba\x0f\xea\x9d", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::Lazy, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\x84\x56\xc0\xa9\xe2\xab\xe6\x79\x6a\xd3\xa5\x8a\x4c\xf6\x99\xf2", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::DisableLazyChecksum, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\x2a\x6f\x77\x4b\x02\x6e\xce\xd0\x0f\x37\x29\xfc\x33\x29\x01\xf6", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::Adapter, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\xaf\xc4\xa8\x07\x86\xde\x51\x06\xb0\x74\xcf\xcf\x71\x08\x2c\xc1", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::PackIsset, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\xc4\x9b\x6c\x8b\xfe\x03\x5d\xa0\xba\xae\x88\x78\xcb\xe9\x88\x10", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::MinimizePadding, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\xf4\x32\x12\x95\xc7\x87\x47\x69\x8e\x3c\x0f\x5c\x22\xbe\x8e\x01", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::ScopedEnumAsUnionType, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\xe1\x99\x59\x75\xdd\xfd\x09\x12\xc6\x56\xea\xec\x01\x0a\x24\xc6", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::FieldInterceptor, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\x1b\xd4\xfa\x68\x66\x2f\xda\xc1\x7c\x53\x1f\x8c\x1f\x5d\x6d\x63", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::UseOpEncode, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\x72\xc2\x3a\x6c\xbc\xc3\x0d\xe4\x37\x2f\x26\x0e\x2b\x49\xca\x61", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::EnumType, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\x96\x84\x7f\x79\x75\x63\x28\x90\xdf\x1c\x70\x0d\x07\x1d\x43\xfd", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::Frozen2Exclude, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\xf9\x65\xe3\xa0\xd9\x92\xcf\x0d\x43\x41\x9e\x1e\x05\x17\x90\x1b", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::Frozen2RequiresCompleteContainerParams, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\x3f\x80\x13\x8f\xe3\x37\x79\x4f\x86\x64\x8a\xe4\x43\x76\xdb\x86", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::ProcessInEbThreadUnsafe, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\x9a\x7c\x62\x5c\x84\x27\xb7\x0c\x2d\x90\x06\x4c\x80\xdb\xca\x33", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::UseCursorSerialization, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\x80\x98\x8e\x72\x15\x17\x45\x5e\x45\x2d\xdf\xe2\x7d\x61\x17\xd1", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::GenerateDeprecatedHeaderClientMethods, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\x2f\x19\x4b\xea\x93\x47\x3f\x96\x38\x0b\x9a\xab\xe9\x95\x59\x77", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::AllowLegacyNonOptionalRef, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\xd9\xee\xce\x24\x17\x30\x16\xb5\xf1\xe4\xf7\x40\x6e\x1a\x7a\x3d", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::DeprecatedTerseWrite, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\xb8\x92\xda\x18\xae\xa4\xe0\xdf\xe4\x81\x4a\xec\xe0\xe4\xd2\x6f", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::AllowLegacyDeprecatedTerseWritesRef, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\x5d\x40\xf0\xb5\x37\xdc\x9d\xe4\xf9\x39\xe7\xc1\x13\x66\x82\x3d", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::EnableCustomTypeOrdering, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\xf5\x3b\xd9\xf4\x3b\xbe\x36\x22\x8b\x42\xa7\x8a\xb0\xc5\x99\x9a", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::GenerateServiceMethodDecorator, false> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\x5d\x0e\x77\x08\x66\x78\xdd\x1f\xff\xce\xe2\xb7\x84\x08\xdd\x02", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::RefType, true> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\xfb\x39\xc8\x8c\x75\xc0\x3d\x93\xdf\xc5\x9a\x45\xe5\xd9\xd0\xea", 16};
};
template <> struct TSchemaAssociation<::facebook::thrift::annotation::cpp::EnumUnderlyingType, true> {
  static ::folly::Range<const ::std::string_view*>(*bundle)();
  static constexpr int64_t programId = 6213379841718362777;
  static constexpr ::std::string_view definitionKey = {"\x82\xa5\x1f\x13\xa4\x1a\x20\xb5\x37\x13\x79\xf1\x2b\x4d\x4f\x97", 16};
};
} // namespace apache::thrift::detail
