/**
 * Autogenerated by Thrift for /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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 {
namespace thrift {
namespace ident {
struct name;
struct template_;
struct type;
struct value;
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_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_value
#define APACHE_THRIFT_ACCESSOR_value
APACHE_THRIFT_DEFINE_ACCESSOR(value);
#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 thrift
} // namespace apache

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

/** Glean {"file": "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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

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

namespace apache { namespace thrift {


template <> struct TEnumDataStorage<::facebook::thrift::annotation::cpp::RefType>;

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 bool findName(type value, std::string_view* out) noexcept;
  static bool findValue(std::string_view name, type* out) noexcept;

  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 TEnumDataStorage<::facebook::thrift::annotation::cpp::EnumUnderlyingType>;

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 bool findName(type value, std::string_view* out) noexcept;
  static bool findValue(std::string_view name, type* out) noexcept;

  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; }
};


}} // apache::thrift


// END declare_enums
// BEGIN forward_declare
namespace facebook::thrift::annotation::cpp {
class Type;
class Ref;
class Name;
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 RuntimeAnnotation;
class UseCursorSerialization;
class GenerateDeprecatedHeaderClientMethods;
} // 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/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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 const char* __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  using __fbthrift_reflection_ident_list = folly::tag_t<
    ::apache::thrift::ident::name,
    ::apache::thrift::ident::template_
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0,1,2};
  using __fbthrift_reflection_type_tags = folly::tag_t<
    ::apache::thrift::type::string_t,
    ::apache::thrift::type::string_t
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 2;

  template<class T>
  using __fbthrift_id = ::apache::thrift::type::field_id<__fbthrift_reflection_field_id_list[folly::to_underlying(T::value)]>;

  template<class T>
  using __fbthrift_type_tag = ::apache::thrift::detail::at<__fbthrift_reflection_type_tags, T::value>;

  template<class T>
  using __fbthrift_ident = ::apache::thrift::detail::at<__fbthrift_reflection_ident_list, T::value>;

  template<class T> using __fbthrift_ordinal = ::apache::thrift::type::ordinal_tag<
    ::apache::thrift::detail::getFieldOrdinal<T,
                                              __fbthrift_reflection_ident_list,
                                              __fbthrift_reflection_type_tags>(
      __fbthrift_reflection_field_id_list
    )
  >;
  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 T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> name_ref() const& {
    return {this->__fbthrift_field_name, __isset.at(0), __isset.bit(0)};
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /** Glean { "field": "name" } */
  const ::std::string& get_name() const& {
    return __fbthrift_field_name;
  }

  /** Glean { "field": "name" } */
  ::std::string get_name() && {
    return std::move(__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_" } */
  const ::std::string& get_template_() const& {
    return __fbthrift_field_template_;
  }

  /** Glean { "field": "template_" } */
  ::std::string get_template_() && {
    return std::move(__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/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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 const char* __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  using __fbthrift_reflection_ident_list = folly::tag_t<
    ::apache::thrift::ident::type
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0,1};
  using __fbthrift_reflection_type_tags = folly::tag_t<
    ::apache::thrift::type::enum_t<::facebook::thrift::annotation::cpp::RefType>
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 1;

  template<class T>
  using __fbthrift_id = ::apache::thrift::type::field_id<__fbthrift_reflection_field_id_list[folly::to_underlying(T::value)]>;

  template<class T>
  using __fbthrift_type_tag = ::apache::thrift::detail::at<__fbthrift_reflection_type_tags, T::value>;

  template<class T>
  using __fbthrift_ident = ::apache::thrift::detail::at<__fbthrift_reflection_ident_list, T::value>;

  template<class T> using __fbthrift_ordinal = ::apache::thrift::type::ordinal_tag<
    ::apache::thrift::detail::getFieldOrdinal<T,
                                              __fbthrift_reflection_ident_list,
                                              __fbthrift_reflection_type_tags>(
      __fbthrift_reflection_field_id_list
    )
  >;
  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 T = ::facebook::thrift::annotation::cpp::RefType>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> type_ref() const& {
    return {this->__fbthrift_field_type, __isset.at(0), __isset.bit(0)};
  }

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

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

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

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

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

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

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

  /** Glean { "field": "type" } */
  ::facebook::thrift::annotation::cpp::RefType get_type() const {
    return __fbthrift_field_type;
  }

  /** 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_) {
    type_ref() = type_;
    return __fbthrift_field_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/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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 const char* __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  using __fbthrift_reflection_ident_list = folly::tag_t<
    ::apache::thrift::ident::value
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0,1};
  using __fbthrift_reflection_type_tags = folly::tag_t<
    ::apache::thrift::type::string_t
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 1;

  template<class T>
  using __fbthrift_id = ::apache::thrift::type::field_id<__fbthrift_reflection_field_id_list[folly::to_underlying(T::value)]>;

  template<class T>
  using __fbthrift_type_tag = ::apache::thrift::detail::at<__fbthrift_reflection_type_tags, T::value>;

  template<class T>
  using __fbthrift_ident = ::apache::thrift::detail::at<__fbthrift_reflection_ident_list, T::value>;

  template<class T> using __fbthrift_ordinal = ::apache::thrift::type::ordinal_tag<
    ::apache::thrift::detail::getFieldOrdinal<T,
                                              __fbthrift_reflection_ident_list,
                                              __fbthrift_reflection_type_tags>(
      __fbthrift_reflection_field_id_list
    )
  >;
  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 T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> value_ref() const& {
    return {this->__fbthrift_field_value, __isset.at(0), __isset.bit(0)};
  }

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

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

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

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

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

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

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

  /** Glean { "field": "value" } */
  const ::std::string& get_value() const& {
    return __fbthrift_field_value;
  }

  /** Glean { "field": "value" } */
  ::std::string get_value() && {
    return std::move(__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/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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 const char* __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  using __fbthrift_reflection_ident_list = folly::tag_t<
    ::apache::thrift::ident::ref
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0,1};
  using __fbthrift_reflection_type_tags = folly::tag_t<
    ::apache::thrift::type::bool_t
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 1;

  template<class T>
  using __fbthrift_id = ::apache::thrift::type::field_id<__fbthrift_reflection_field_id_list[folly::to_underlying(T::value)]>;

  template<class T>
  using __fbthrift_type_tag = ::apache::thrift::detail::at<__fbthrift_reflection_type_tags, T::value>;

  template<class T>
  using __fbthrift_ident = ::apache::thrift::detail::at<__fbthrift_reflection_ident_list, T::value>;

  template<class T> using __fbthrift_ordinal = ::apache::thrift::type::ordinal_tag<
    ::apache::thrift::detail::getFieldOrdinal<T,
                                              __fbthrift_reflection_ident_list,
                                              __fbthrift_reflection_type_tags>(
      __fbthrift_reflection_field_id_list
    )
  >;
  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 T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> ref_ref() const& {
    return {this->__fbthrift_field_ref, __isset.at(0), __isset.bit(0)};
  }

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

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

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

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

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

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

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

  /** Glean { "field": "ref" } */
  bool get_ref() const {
    return __fbthrift_field_ref;
  }

  /** Glean { "field": "ref" } */
  [[deprecated("Use `FOO.ref() = BAR;` instead of `FOO.set_ref(BAR);`")]]
  bool& set_ref(bool ref_) {
    ref_ref() = ref_;
    return __fbthrift_field_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/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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 const char* __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  using __fbthrift_reflection_ident_list = folly::tag_t<
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0};
  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 0;

  template<class T>
  using __fbthrift_id = ::apache::thrift::type::field_id<__fbthrift_reflection_field_id_list[folly::to_underlying(T::value)]>;

  template<class T>
  using __fbthrift_type_tag = ::apache::thrift::detail::at<__fbthrift_reflection_type_tags, T::value>;

  template<class T>
  using __fbthrift_ident = ::apache::thrift::detail::at<__fbthrift_reflection_ident_list, T::value>;

  template<class T> using __fbthrift_ordinal = ::apache::thrift::type::ordinal_tag<
    ::apache::thrift::detail::getFieldOrdinal<T,
                                              __fbthrift_reflection_ident_list,
                                              __fbthrift_reflection_type_tags>(
      __fbthrift_reflection_field_id_list
    )
  >;
  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/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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 const char* __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  using __fbthrift_reflection_ident_list = folly::tag_t<
    ::apache::thrift::ident::name,
    ::apache::thrift::ident::adaptedType,
    ::apache::thrift::ident::underlyingName,
    ::apache::thrift::ident::extraNamespace,
    ::apache::thrift::ident::moveOnly
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0,1,2,3,4,5};
  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
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 5;

  template<class T>
  using __fbthrift_id = ::apache::thrift::type::field_id<__fbthrift_reflection_field_id_list[folly::to_underlying(T::value)]>;

  template<class T>
  using __fbthrift_type_tag = ::apache::thrift::detail::at<__fbthrift_reflection_type_tags, T::value>;

  template<class T>
  using __fbthrift_ident = ::apache::thrift::detail::at<__fbthrift_reflection_ident_list, T::value>;

  template<class T> using __fbthrift_ordinal = ::apache::thrift::type::ordinal_tag<
    ::apache::thrift::detail::getFieldOrdinal<T,
                                              __fbthrift_reflection_ident_list,
                                              __fbthrift_reflection_type_tags>(
      __fbthrift_reflection_field_id_list
    )
  >;
  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 T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> name_ref() const& {
    return {this->__fbthrift_field_name, __isset.at(0), __isset.bit(0)};
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /** Glean { "field": "name" } */
  const ::std::string& get_name() const& {
    return __fbthrift_field_name;
  }

  /** Glean { "field": "name" } */
  ::std::string get_name() && {
    return std::move(__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" } */
  const ::std::string& get_adaptedType() const& {
    return __fbthrift_field_adaptedType;
  }

  /** Glean { "field": "adaptedType" } */
  ::std::string get_adaptedType() && {
    return std::move(__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" } */
  const ::std::string& get_underlyingName() const& {
    return __fbthrift_field_underlyingName;
  }

  /** Glean { "field": "underlyingName" } */
  ::std::string get_underlyingName() && {
    return std::move(__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" } */
  const ::std::string& get_extraNamespace() const& {
    return __fbthrift_field_extraNamespace;
  }

  /** Glean { "field": "extraNamespace" } */
  ::std::string get_extraNamespace() && {
    return std::move(__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" } */
  bool get_moveOnly() const {
    return __fbthrift_field_moveOnly;
  }

  /** Glean { "field": "moveOnly" } */
  [[deprecated("Use `FOO.moveOnly() = BAR;` instead of `FOO.set_moveOnly(BAR);`")]]
  bool& set_moveOnly(bool moveOnly_) {
    moveOnly_ref() = moveOnly_;
    return __fbthrift_field_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/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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 const char* __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  using __fbthrift_reflection_ident_list = folly::tag_t<
    ::apache::thrift::ident::atomic
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0,1};
  using __fbthrift_reflection_type_tags = folly::tag_t<
    ::apache::thrift::type::bool_t
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 1;

  template<class T>
  using __fbthrift_id = ::apache::thrift::type::field_id<__fbthrift_reflection_field_id_list[folly::to_underlying(T::value)]>;

  template<class T>
  using __fbthrift_type_tag = ::apache::thrift::detail::at<__fbthrift_reflection_type_tags, T::value>;

  template<class T>
  using __fbthrift_ident = ::apache::thrift::detail::at<__fbthrift_reflection_ident_list, T::value>;

  template<class T> using __fbthrift_ordinal = ::apache::thrift::type::ordinal_tag<
    ::apache::thrift::detail::getFieldOrdinal<T,
                                              __fbthrift_reflection_ident_list,
                                              __fbthrift_reflection_type_tags>(
      __fbthrift_reflection_field_id_list
    )
  >;
  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 T = bool>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> atomic_ref() const& {
    return {this->__fbthrift_field_atomic, __isset.at(0), __isset.bit(0)};
  }

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

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

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

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

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

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

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

  /** Glean { "field": "atomic" } */
  bool get_atomic() const {
    return __fbthrift_field_atomic;
  }

  /** Glean { "field": "atomic" } */
  [[deprecated("Use `FOO.atomic() = BAR;` instead of `FOO.set_atomic(BAR);`")]]
  bool& set_atomic(bool atomic_) {
    atomic_ref() = atomic_;
    return __fbthrift_field_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/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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 const char* __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  using __fbthrift_reflection_ident_list = folly::tag_t<
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0};
  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 0;

  template<class T>
  using __fbthrift_id = ::apache::thrift::type::field_id<__fbthrift_reflection_field_id_list[folly::to_underlying(T::value)]>;

  template<class T>
  using __fbthrift_type_tag = ::apache::thrift::detail::at<__fbthrift_reflection_type_tags, T::value>;

  template<class T>
  using __fbthrift_ident = ::apache::thrift::detail::at<__fbthrift_reflection_ident_list, T::value>;

  template<class T> using __fbthrift_ordinal = ::apache::thrift::type::ordinal_tag<
    ::apache::thrift::detail::getFieldOrdinal<T,
                                              __fbthrift_reflection_ident_list,
                                              __fbthrift_reflection_type_tags>(
      __fbthrift_reflection_field_id_list
    )
  >;
  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/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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 const char* __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  using __fbthrift_reflection_ident_list = folly::tag_t<
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0};
  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 0;

  template<class T>
  using __fbthrift_id = ::apache::thrift::type::field_id<__fbthrift_reflection_field_id_list[folly::to_underlying(T::value)]>;

  template<class T>
  using __fbthrift_type_tag = ::apache::thrift::detail::at<__fbthrift_reflection_type_tags, T::value>;

  template<class T>
  using __fbthrift_ident = ::apache::thrift::detail::at<__fbthrift_reflection_ident_list, T::value>;

  template<class T> using __fbthrift_ordinal = ::apache::thrift::type::ordinal_tag<
    ::apache::thrift::detail::getFieldOrdinal<T,
                                              __fbthrift_reflection_ident_list,
                                              __fbthrift_reflection_type_tags>(
      __fbthrift_reflection_field_id_list
    )
  >;
  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/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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 const char* __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  using __fbthrift_reflection_ident_list = folly::tag_t<
    ::apache::thrift::ident::name,
    ::apache::thrift::ident::noinline
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0,1,2};
  using __fbthrift_reflection_type_tags = folly::tag_t<
    ::apache::thrift::type::string_t,
    ::apache::thrift::type::bool_t
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 2;

  template<class T>
  using __fbthrift_id = ::apache::thrift::type::field_id<__fbthrift_reflection_field_id_list[folly::to_underlying(T::value)]>;

  template<class T>
  using __fbthrift_type_tag = ::apache::thrift::detail::at<__fbthrift_reflection_type_tags, T::value>;

  template<class T>
  using __fbthrift_ident = ::apache::thrift::detail::at<__fbthrift_reflection_ident_list, T::value>;

  template<class T> using __fbthrift_ordinal = ::apache::thrift::type::ordinal_tag<
    ::apache::thrift::detail::getFieldOrdinal<T,
                                              __fbthrift_reflection_ident_list,
                                              __fbthrift_reflection_type_tags>(
      __fbthrift_reflection_field_id_list
    )
  >;
  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 T = ::std::string>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> name_ref() const& {
    return {this->__fbthrift_field_name, __isset.at(0), __isset.bit(0)};
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /** Glean { "field": "name" } */
  const ::std::string& get_name() const& {
    return __fbthrift_field_name;
  }

  /** Glean { "field": "name" } */
  ::std::string get_name() && {
    return std::move(__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" } */
  bool get_noinline() const {
    return __fbthrift_field_noinline;
  }

  /** Glean { "field": "noinline" } */
  [[deprecated("Use `FOO.noinline() = BAR;` instead of `FOO.set_noinline(BAR);`")]]
  bool& set_noinline(bool noinline_) {
    noinline_ref() = noinline_;
    return __fbthrift_field_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/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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 const char* __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  using __fbthrift_reflection_ident_list = folly::tag_t<
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0};
  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 0;

  template<class T>
  using __fbthrift_id = ::apache::thrift::type::field_id<__fbthrift_reflection_field_id_list[folly::to_underlying(T::value)]>;

  template<class T>
  using __fbthrift_type_tag = ::apache::thrift::detail::at<__fbthrift_reflection_type_tags, T::value>;

  template<class T>
  using __fbthrift_ident = ::apache::thrift::detail::at<__fbthrift_reflection_ident_list, T::value>;

  template<class T> using __fbthrift_ordinal = ::apache::thrift::type::ordinal_tag<
    ::apache::thrift::detail::getFieldOrdinal<T,
                                              __fbthrift_reflection_ident_list,
                                              __fbthrift_reflection_type_tags>(
      __fbthrift_reflection_field_id_list
    )
  >;
  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/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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 const char* __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  using __fbthrift_reflection_ident_list = folly::tag_t<
    ::apache::thrift::ident::type
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0,1};
  using __fbthrift_reflection_type_tags = folly::tag_t<
    ::apache::thrift::type::enum_t<::facebook::thrift::annotation::cpp::EnumUnderlyingType>
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 1;

  template<class T>
  using __fbthrift_id = ::apache::thrift::type::field_id<__fbthrift_reflection_field_id_list[folly::to_underlying(T::value)]>;

  template<class T>
  using __fbthrift_type_tag = ::apache::thrift::detail::at<__fbthrift_reflection_type_tags, T::value>;

  template<class T>
  using __fbthrift_ident = ::apache::thrift::detail::at<__fbthrift_reflection_ident_list, T::value>;

  template<class T> using __fbthrift_ordinal = ::apache::thrift::type::ordinal_tag<
    ::apache::thrift::detail::getFieldOrdinal<T,
                                              __fbthrift_reflection_ident_list,
                                              __fbthrift_reflection_type_tags>(
      __fbthrift_reflection_field_id_list
    )
  >;
  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 T = ::facebook::thrift::annotation::cpp::EnumUnderlyingType>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> type_ref() const& {
    return {this->__fbthrift_field_type, __isset.at(0), __isset.bit(0)};
  }

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

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

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

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

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

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

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

  /** Glean { "field": "type" } */
  ::facebook::thrift::annotation::cpp::EnumUnderlyingType get_type() const {
    return __fbthrift_field_type;
  }

  /** 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_) {
    type_ref() = type_;
    return __fbthrift_field_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/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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 const char* __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  using __fbthrift_reflection_ident_list = folly::tag_t<
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0};
  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 0;

  template<class T>
  using __fbthrift_id = ::apache::thrift::type::field_id<__fbthrift_reflection_field_id_list[folly::to_underlying(T::value)]>;

  template<class T>
  using __fbthrift_type_tag = ::apache::thrift::detail::at<__fbthrift_reflection_type_tags, T::value>;

  template<class T>
  using __fbthrift_ident = ::apache::thrift::detail::at<__fbthrift_reflection_ident_list, T::value>;

  template<class T> using __fbthrift_ordinal = ::apache::thrift::type::ordinal_tag<
    ::apache::thrift::detail::getFieldOrdinal<T,
                                              __fbthrift_reflection_ident_list,
                                              __fbthrift_reflection_type_tags>(
      __fbthrift_reflection_field_id_list
    )
  >;
  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/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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 const char* __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  using __fbthrift_reflection_ident_list = folly::tag_t<
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0};
  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 0;

  template<class T>
  using __fbthrift_id = ::apache::thrift::type::field_id<__fbthrift_reflection_field_id_list[folly::to_underlying(T::value)]>;

  template<class T>
  using __fbthrift_type_tag = ::apache::thrift::detail::at<__fbthrift_reflection_type_tags, T::value>;

  template<class T>
  using __fbthrift_ident = ::apache::thrift::detail::at<__fbthrift_reflection_ident_list, T::value>;

  template<class T> using __fbthrift_ordinal = ::apache::thrift::type::ordinal_tag<
    ::apache::thrift::detail::getFieldOrdinal<T,
                                              __fbthrift_reflection_ident_list,
                                              __fbthrift_reflection_type_tags>(
      __fbthrift_reflection_field_id_list
    )
  >;
  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/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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 const char* __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  using __fbthrift_reflection_ident_list = folly::tag_t<
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0};
  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 0;

  template<class T>
  using __fbthrift_id = ::apache::thrift::type::field_id<__fbthrift_reflection_field_id_list[folly::to_underlying(T::value)]>;

  template<class T>
  using __fbthrift_type_tag = ::apache::thrift::detail::at<__fbthrift_reflection_type_tags, T::value>;

  template<class T>
  using __fbthrift_ident = ::apache::thrift::detail::at<__fbthrift_reflection_ident_list, T::value>;

  template<class T> using __fbthrift_ordinal = ::apache::thrift::type::ordinal_tag<
    ::apache::thrift::detail::getFieldOrdinal<T,
                                              __fbthrift_reflection_ident_list,
                                              __fbthrift_reflection_type_tags>(
      __fbthrift_reflection_field_id_list
    )
  >;
  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/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.00/thrift/annotation/cpp.thrift", "name": "RuntimeAnnotation", "kind": "struct" } */
class RuntimeAnnotation 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 const char* __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  using __fbthrift_reflection_ident_list = folly::tag_t<
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0};
  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 0;

  template<class T>
  using __fbthrift_id = ::apache::thrift::type::field_id<__fbthrift_reflection_field_id_list[folly::to_underlying(T::value)]>;

  template<class T>
  using __fbthrift_type_tag = ::apache::thrift::detail::at<__fbthrift_reflection_type_tags, T::value>;

  template<class T>
  using __fbthrift_ident = ::apache::thrift::detail::at<__fbthrift_reflection_ident_list, T::value>;

  template<class T> using __fbthrift_ordinal = ::apache::thrift::type::ordinal_tag<
    ::apache::thrift::detail::getFieldOrdinal<T,
                                              __fbthrift_reflection_ident_list,
                                              __fbthrift_reflection_type_tags>(
      __fbthrift_reflection_field_id_list
    )
  >;
  void __fbthrift_clear();
  void __fbthrift_clear_terse_fields();
  bool __fbthrift_is_empty() const;

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


 public:

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

  RuntimeAnnotation(RuntimeAnnotation&&) = default;

  RuntimeAnnotation(const RuntimeAnnotation&) = default;


  RuntimeAnnotation& operator=(RuntimeAnnotation&&) = default;

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

 public:

  bool operator==(const RuntimeAnnotation&) const;
  bool operator<(const RuntimeAnnotation&) 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<RuntimeAnnotation>;
  friend void swap(RuntimeAnnotation& a, RuntimeAnnotation& b);
};

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


/** Glean {"file": "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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 const char* __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  using __fbthrift_reflection_ident_list = folly::tag_t<
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0};
  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 0;

  template<class T>
  using __fbthrift_id = ::apache::thrift::type::field_id<__fbthrift_reflection_field_id_list[folly::to_underlying(T::value)]>;

  template<class T>
  using __fbthrift_type_tag = ::apache::thrift::detail::at<__fbthrift_reflection_type_tags, T::value>;

  template<class T>
  using __fbthrift_ident = ::apache::thrift::detail::at<__fbthrift_reflection_ident_list, T::value>;

  template<class T> using __fbthrift_ordinal = ::apache::thrift::type::ordinal_tag<
    ::apache::thrift::detail::getFieldOrdinal<T,
                                              __fbthrift_reflection_ident_list,
                                              __fbthrift_reflection_type_tags>(
      __fbthrift_reflection_field_id_list
    )
  >;
  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/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.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 const char* __fbthrift_thrift_uri();
  static std::string_view __fbthrift_get_field_name(::apache::thrift::FieldOrdinal ord);
  static std::string_view __fbthrift_get_class_name();
  using __fbthrift_reflection_ident_list = folly::tag_t<
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0};
  using __fbthrift_reflection_type_tags = folly::tag_t<
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 0;

  template<class T>
  using __fbthrift_id = ::apache::thrift::type::field_id<__fbthrift_reflection_field_id_list[folly::to_underlying(T::value)]>;

  template<class T>
  using __fbthrift_type_tag = ::apache::thrift::detail::at<__fbthrift_reflection_type_tags, T::value>;

  template<class T>
  using __fbthrift_ident = ::apache::thrift::detail::at<__fbthrift_reflection_ident_list, T::value>;

  template<class T> using __fbthrift_ordinal = ::apache::thrift::type::ordinal_tag<
    ::apache::thrift::detail::getFieldOrdinal<T,
                                              __fbthrift_reflection_ident_list,
                                              __fbthrift_reflection_type_tags>(
      __fbthrift_reflection_field_id_list
    )
  >;
  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;
}


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