/**
 * Autogenerated by Thrift for /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.00/thrift/lib/thrift/serverdbginfo.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 prioritiesCount;
struct bucketsPerPriority;
struct perBucketRequestLimit;
struct totalRequestsLimit;
struct queuedRequestsCount;
struct name;
struct concurrencyLimit;
struct qpsLimit;
struct totalProcessedRequests;
struct name;
struct threadsCount;
struct name;
struct requestPileDbgInfo;
struct concurrencyControllerDbgInfo;
struct executorDbgInfo;
struct mode;
struct method;
struct cpuTarget;
struct cpuLoadSource;
struct refreshPeriodMs;
struct additiveMultiplier;
struct decreaseMultiplier;
struct increaseDistanceRatio;
struct bumpOnError;
struct refractoryPeriodMs;
struct initialEstimateFactor;
struct initialEstimatePercentile;
struct collectionSampleSize;
struct concurrencyUpperBound;
struct concurrencyLowerBound;
struct cpuLoad;
struct enabled;
struct resourcePools;
} // namespace ident
namespace detail {
#ifndef APACHE_THRIFT_ACCESSOR_name
#define APACHE_THRIFT_ACCESSOR_name
APACHE_THRIFT_DEFINE_ACCESSOR(name);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_prioritiesCount
#define APACHE_THRIFT_ACCESSOR_prioritiesCount
APACHE_THRIFT_DEFINE_ACCESSOR(prioritiesCount);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_bucketsPerPriority
#define APACHE_THRIFT_ACCESSOR_bucketsPerPriority
APACHE_THRIFT_DEFINE_ACCESSOR(bucketsPerPriority);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_perBucketRequestLimit
#define APACHE_THRIFT_ACCESSOR_perBucketRequestLimit
APACHE_THRIFT_DEFINE_ACCESSOR(perBucketRequestLimit);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_totalRequestsLimit
#define APACHE_THRIFT_ACCESSOR_totalRequestsLimit
APACHE_THRIFT_DEFINE_ACCESSOR(totalRequestsLimit);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_queuedRequestsCount
#define APACHE_THRIFT_ACCESSOR_queuedRequestsCount
APACHE_THRIFT_DEFINE_ACCESSOR(queuedRequestsCount);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_name
#define APACHE_THRIFT_ACCESSOR_name
APACHE_THRIFT_DEFINE_ACCESSOR(name);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_concurrencyLimit
#define APACHE_THRIFT_ACCESSOR_concurrencyLimit
APACHE_THRIFT_DEFINE_ACCESSOR(concurrencyLimit);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_qpsLimit
#define APACHE_THRIFT_ACCESSOR_qpsLimit
APACHE_THRIFT_DEFINE_ACCESSOR(qpsLimit);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_totalProcessedRequests
#define APACHE_THRIFT_ACCESSOR_totalProcessedRequests
APACHE_THRIFT_DEFINE_ACCESSOR(totalProcessedRequests);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_name
#define APACHE_THRIFT_ACCESSOR_name
APACHE_THRIFT_DEFINE_ACCESSOR(name);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_threadsCount
#define APACHE_THRIFT_ACCESSOR_threadsCount
APACHE_THRIFT_DEFINE_ACCESSOR(threadsCount);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_name
#define APACHE_THRIFT_ACCESSOR_name
APACHE_THRIFT_DEFINE_ACCESSOR(name);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_requestPileDbgInfo
#define APACHE_THRIFT_ACCESSOR_requestPileDbgInfo
APACHE_THRIFT_DEFINE_ACCESSOR(requestPileDbgInfo);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_concurrencyControllerDbgInfo
#define APACHE_THRIFT_ACCESSOR_concurrencyControllerDbgInfo
APACHE_THRIFT_DEFINE_ACCESSOR(concurrencyControllerDbgInfo);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_executorDbgInfo
#define APACHE_THRIFT_ACCESSOR_executorDbgInfo
APACHE_THRIFT_DEFINE_ACCESSOR(executorDbgInfo);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_mode
#define APACHE_THRIFT_ACCESSOR_mode
APACHE_THRIFT_DEFINE_ACCESSOR(mode);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_method
#define APACHE_THRIFT_ACCESSOR_method
APACHE_THRIFT_DEFINE_ACCESSOR(method);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_cpuTarget
#define APACHE_THRIFT_ACCESSOR_cpuTarget
APACHE_THRIFT_DEFINE_ACCESSOR(cpuTarget);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_cpuLoadSource
#define APACHE_THRIFT_ACCESSOR_cpuLoadSource
APACHE_THRIFT_DEFINE_ACCESSOR(cpuLoadSource);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_refreshPeriodMs
#define APACHE_THRIFT_ACCESSOR_refreshPeriodMs
APACHE_THRIFT_DEFINE_ACCESSOR(refreshPeriodMs);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_additiveMultiplier
#define APACHE_THRIFT_ACCESSOR_additiveMultiplier
APACHE_THRIFT_DEFINE_ACCESSOR(additiveMultiplier);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_decreaseMultiplier
#define APACHE_THRIFT_ACCESSOR_decreaseMultiplier
APACHE_THRIFT_DEFINE_ACCESSOR(decreaseMultiplier);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_increaseDistanceRatio
#define APACHE_THRIFT_ACCESSOR_increaseDistanceRatio
APACHE_THRIFT_DEFINE_ACCESSOR(increaseDistanceRatio);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_bumpOnError
#define APACHE_THRIFT_ACCESSOR_bumpOnError
APACHE_THRIFT_DEFINE_ACCESSOR(bumpOnError);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_refractoryPeriodMs
#define APACHE_THRIFT_ACCESSOR_refractoryPeriodMs
APACHE_THRIFT_DEFINE_ACCESSOR(refractoryPeriodMs);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_initialEstimateFactor
#define APACHE_THRIFT_ACCESSOR_initialEstimateFactor
APACHE_THRIFT_DEFINE_ACCESSOR(initialEstimateFactor);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_initialEstimatePercentile
#define APACHE_THRIFT_ACCESSOR_initialEstimatePercentile
APACHE_THRIFT_DEFINE_ACCESSOR(initialEstimatePercentile);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_collectionSampleSize
#define APACHE_THRIFT_ACCESSOR_collectionSampleSize
APACHE_THRIFT_DEFINE_ACCESSOR(collectionSampleSize);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_concurrencyUpperBound
#define APACHE_THRIFT_ACCESSOR_concurrencyUpperBound
APACHE_THRIFT_DEFINE_ACCESSOR(concurrencyUpperBound);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_concurrencyLowerBound
#define APACHE_THRIFT_ACCESSOR_concurrencyLowerBound
APACHE_THRIFT_DEFINE_ACCESSOR(concurrencyLowerBound);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_cpuLoad
#define APACHE_THRIFT_ACCESSOR_cpuLoad
APACHE_THRIFT_DEFINE_ACCESSOR(cpuLoad);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_enabled
#define APACHE_THRIFT_ACCESSOR_enabled
APACHE_THRIFT_DEFINE_ACCESSOR(enabled);
#endif
#ifndef APACHE_THRIFT_ACCESSOR_resourcePools
#define APACHE_THRIFT_ACCESSOR_resourcePools
APACHE_THRIFT_DEFINE_ACCESSOR(resourcePools);
#endif
} // namespace detail
} // namespace thrift
} // namespace apache

// BEGIN declare_enums

// END declare_enums
// BEGIN forward_declare
namespace apache::thrift::serverdbginfo {
class RequestPileDbgInfo;
class ConcurrencyControllerDbgInfo;
class ExecutorDbgInfo;
class ResourcePoolDbgInfo;
class CPUConcurrencyControllerDbgInfo;
class ResourcePoolsDbgInfo;
} // namespace apache::thrift::serverdbginfo
// 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 apache::thrift::serverdbginfo {
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_bblocal_var_buildworker_ports_build_ports_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.00/thrift/lib/thrift/serverdbginfo.thrift", "name": "RequestPileDbgInfo", "kind": "struct" } */
class RequestPileDbgInfo 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 = true;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  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::prioritiesCount,
    ::apache::thrift::ident::bucketsPerPriority,
    ::apache::thrift::ident::perBucketRequestLimit,
    ::apache::thrift::ident::totalRequestsLimit,
    ::apache::thrift::ident::queuedRequestsCount
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0,1,2,3,4,5,6};
  using __fbthrift_reflection_type_tags = folly::tag_t<
    ::apache::thrift::type::string_t,
    ::apache::thrift::type::i32_t,
    ::apache::thrift::type::list<::apache::thrift::type::i64_t>,
    ::apache::thrift::type::i64_t,
    ::apache::thrift::type::i64_t,
    ::apache::thrift::type::i64_t
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 6;

  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 = RequestPileDbgInfo;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  RequestPileDbgInfo();

  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  RequestPileDbgInfo(apache::thrift::FragileConstructor, ::std::string name__arg, ::std::int32_t prioritiesCount__arg, ::std::vector<::std::int64_t> bucketsPerPriority__arg, ::std::int64_t perBucketRequestLimit__arg, ::std::int64_t totalRequestsLimit__arg, ::std::int64_t queuedRequestsCount__arg);

  RequestPileDbgInfo(RequestPileDbgInfo&&) noexcept;

  RequestPileDbgInfo(const RequestPileDbgInfo& src);


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

  ~RequestPileDbgInfo();

 private:
  ::std::string __fbthrift_field_name;
 private:
  ::std::int32_t __fbthrift_field_prioritiesCount;
 private:
  ::std::vector<::std::int64_t> __fbthrift_field_bucketsPerPriority;
 private:
  ::std::int64_t __fbthrift_field_perBucketRequestLimit;
 private:
  ::std::int64_t __fbthrift_field_totalRequestsLimit;
 private:
  ::std::int64_t __fbthrift_field_queuedRequestsCount;
 private:
  apache::thrift::detail::isset_bitset<6, apache::thrift::detail::IssetBitsetOption::Unpacked> __isset;

 public:

  bool operator==(const RequestPileDbgInfo&) const;
  bool operator<(const RequestPileDbgInfo&) 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": "prioritiesCount" } */
  template <typename..., typename T = ::std::int32_t>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> prioritiesCount_ref() const& {
    return {this->__fbthrift_field_prioritiesCount, __isset.at(1), __isset.bit(1)};
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /** Glean { "field": "totalRequestsLimit" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> totalRequestsLimit_ref() & {
    return {this->__fbthrift_field_totalRequestsLimit, __isset.at(4), __isset.bit(4)};
  }

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

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

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

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

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

  /** Glean { "field": "queuedRequestsCount" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> queuedRequestsCount_ref() const& {
    return {this->__fbthrift_field_queuedRequestsCount, __isset.at(5), __isset.bit(5)};
  }

  /** Glean { "field": "queuedRequestsCount" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&&> queuedRequestsCount_ref() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_queuedRequestsCount), __isset.at(5), __isset.bit(5)};
  }

  /** Glean { "field": "queuedRequestsCount" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> queuedRequestsCount_ref() & {
    return {this->__fbthrift_field_queuedRequestsCount, __isset.at(5), __isset.bit(5)};
  }

  /** Glean { "field": "queuedRequestsCount" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&&> queuedRequestsCount_ref() && {
    return {static_cast<T&&>(this->__fbthrift_field_queuedRequestsCount), __isset.at(5), __isset.bit(5)};
  }

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

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

  /** Glean { "field": "queuedRequestsCount" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> queuedRequestsCount() & {
    return {this->__fbthrift_field_queuedRequestsCount, __isset.at(5), __isset.bit(5)};
  }

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

  /** 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_RequestPileDbgInfo_name_struct_setter = ::std::string>
  [[deprecated("Use `FOO.name() = BAR;` instead of `FOO.set_name(BAR);`")]]
  ::std::string& set_name(T_RequestPileDbgInfo_name_struct_setter&& name_) {
    name_ref() = std::forward<T_RequestPileDbgInfo_name_struct_setter>(name_);
    return __fbthrift_field_name;
  }

  /** Glean { "field": "prioritiesCount" } */
  ::std::int32_t get_prioritiesCount() const {
    return __fbthrift_field_prioritiesCount;
  }

  /** Glean { "field": "prioritiesCount" } */
  [[deprecated("Use `FOO.prioritiesCount() = BAR;` instead of `FOO.set_prioritiesCount(BAR);`")]]
  ::std::int32_t& set_prioritiesCount(::std::int32_t prioritiesCount_) {
    prioritiesCount_ref() = prioritiesCount_;
    return __fbthrift_field_prioritiesCount;
  }
  /** Glean { "field": "bucketsPerPriority" } */
  const ::std::vector<::std::int64_t>& get_bucketsPerPriority() const&;
  /** Glean { "field": "bucketsPerPriority" } */
  ::std::vector<::std::int64_t> get_bucketsPerPriority() &&;

  /** Glean { "field": "bucketsPerPriority" } */
  template <typename T_RequestPileDbgInfo_bucketsPerPriority_struct_setter = ::std::vector<::std::int64_t>>
  [[deprecated("Use `FOO.bucketsPerPriority() = BAR;` instead of `FOO.set_bucketsPerPriority(BAR);`")]]
  ::std::vector<::std::int64_t>& set_bucketsPerPriority(T_RequestPileDbgInfo_bucketsPerPriority_struct_setter&& bucketsPerPriority_) {
    bucketsPerPriority_ref() = std::forward<T_RequestPileDbgInfo_bucketsPerPriority_struct_setter>(bucketsPerPriority_);
    return __fbthrift_field_bucketsPerPriority;
  }

  /** Glean { "field": "perBucketRequestLimit" } */
  ::std::int64_t get_perBucketRequestLimit() const {
    return __fbthrift_field_perBucketRequestLimit;
  }

  /** Glean { "field": "perBucketRequestLimit" } */
  [[deprecated("Use `FOO.perBucketRequestLimit() = BAR;` instead of `FOO.set_perBucketRequestLimit(BAR);`")]]
  ::std::int64_t& set_perBucketRequestLimit(::std::int64_t perBucketRequestLimit_) {
    perBucketRequestLimit_ref() = perBucketRequestLimit_;
    return __fbthrift_field_perBucketRequestLimit;
  }

  /** Glean { "field": "totalRequestsLimit" } */
  ::std::int64_t get_totalRequestsLimit() const {
    return __fbthrift_field_totalRequestsLimit;
  }

  /** Glean { "field": "totalRequestsLimit" } */
  [[deprecated("Use `FOO.totalRequestsLimit() = BAR;` instead of `FOO.set_totalRequestsLimit(BAR);`")]]
  ::std::int64_t& set_totalRequestsLimit(::std::int64_t totalRequestsLimit_) {
    totalRequestsLimit_ref() = totalRequestsLimit_;
    return __fbthrift_field_totalRequestsLimit;
  }

  /** Glean { "field": "queuedRequestsCount" } */
  ::std::int64_t get_queuedRequestsCount() const {
    return __fbthrift_field_queuedRequestsCount;
  }

  /** Glean { "field": "queuedRequestsCount" } */
  [[deprecated("Use `FOO.queuedRequestsCount() = BAR;` instead of `FOO.set_queuedRequestsCount(BAR);`")]]
  ::std::int64_t& set_queuedRequestsCount(::std::int64_t queuedRequestsCount_) {
    queuedRequestsCount_ref() = queuedRequestsCount_;
    return __fbthrift_field_queuedRequestsCount;
  }

  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<RequestPileDbgInfo>;
  friend void swap(RequestPileDbgInfo& a, RequestPileDbgInfo& b);
};

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


/** Glean {"file": "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.00/thrift/lib/thrift/serverdbginfo.thrift", "name": "ConcurrencyControllerDbgInfo", "kind": "struct" } */
class ConcurrencyControllerDbgInfo 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 = true;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  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::concurrencyLimit,
    ::apache::thrift::ident::qpsLimit,
    ::apache::thrift::ident::totalProcessedRequests
  >;

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

  static constexpr std::size_t __fbthrift_field_size_v = 4;

  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 = ConcurrencyControllerDbgInfo;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  ConcurrencyControllerDbgInfo();

  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  ConcurrencyControllerDbgInfo(apache::thrift::FragileConstructor, ::std::string name__arg, ::std::int32_t concurrencyLimit__arg, ::std::int32_t qpsLimit__arg, ::std::int64_t totalProcessedRequests__arg);

  ConcurrencyControllerDbgInfo(ConcurrencyControllerDbgInfo&&) noexcept;

  ConcurrencyControllerDbgInfo(const ConcurrencyControllerDbgInfo& src);


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

  ~ConcurrencyControllerDbgInfo();

 private:
  ::std::string __fbthrift_field_name;
 private:
  ::std::int32_t __fbthrift_field_concurrencyLimit;
 private:
  ::std::int32_t __fbthrift_field_qpsLimit;
 private:
  ::std::int64_t __fbthrift_field_totalProcessedRequests;
 private:
  apache::thrift::detail::isset_bitset<4, apache::thrift::detail::IssetBitsetOption::Unpacked> __isset;

 public:

  bool operator==(const ConcurrencyControllerDbgInfo&) const;
  bool operator<(const ConcurrencyControllerDbgInfo&) 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": "concurrencyLimit" } */
  template <typename..., typename T = ::std::int32_t>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> concurrencyLimit_ref() const& {
    return {this->__fbthrift_field_concurrencyLimit, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "concurrencyLimit" } */
  template <typename..., typename T = ::std::int32_t>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> concurrencyLimit_ref() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_concurrencyLimit), __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "concurrencyLimit" } */
  template <typename..., typename T = ::std::int32_t>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> concurrencyLimit_ref() & {
    return {this->__fbthrift_field_concurrencyLimit, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "concurrencyLimit" } */
  template <typename..., typename T = ::std::int32_t>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> concurrencyLimit_ref() && {
    return {static_cast<T&&>(this->__fbthrift_field_concurrencyLimit), __isset.at(1), __isset.bit(1)};
  }

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

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

  /** Glean { "field": "concurrencyLimit" } */
  template <typename..., typename T = ::std::int32_t>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> concurrencyLimit() & {
    return {this->__fbthrift_field_concurrencyLimit, __isset.at(1), __isset.bit(1)};
  }

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

  /** Glean { "field": "qpsLimit" } */
  template <typename..., typename T = ::std::int32_t>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> qpsLimit_ref() const& {
    return {this->__fbthrift_field_qpsLimit, __isset.at(2), __isset.bit(2)};
  }

  /** Glean { "field": "qpsLimit" } */
  template <typename..., typename T = ::std::int32_t>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> qpsLimit_ref() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_qpsLimit), __isset.at(2), __isset.bit(2)};
  }

  /** Glean { "field": "qpsLimit" } */
  template <typename..., typename T = ::std::int32_t>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> qpsLimit_ref() & {
    return {this->__fbthrift_field_qpsLimit, __isset.at(2), __isset.bit(2)};
  }

  /** Glean { "field": "qpsLimit" } */
  template <typename..., typename T = ::std::int32_t>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> qpsLimit_ref() && {
    return {static_cast<T&&>(this->__fbthrift_field_qpsLimit), __isset.at(2), __isset.bit(2)};
  }

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

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

  /** Glean { "field": "qpsLimit" } */
  template <typename..., typename T = ::std::int32_t>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> qpsLimit() & {
    return {this->__fbthrift_field_qpsLimit, __isset.at(2), __isset.bit(2)};
  }

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

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

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

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

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

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

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

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

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

  /** 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_ConcurrencyControllerDbgInfo_name_struct_setter = ::std::string>
  [[deprecated("Use `FOO.name() = BAR;` instead of `FOO.set_name(BAR);`")]]
  ::std::string& set_name(T_ConcurrencyControllerDbgInfo_name_struct_setter&& name_) {
    name_ref() = std::forward<T_ConcurrencyControllerDbgInfo_name_struct_setter>(name_);
    return __fbthrift_field_name;
  }

  /** Glean { "field": "concurrencyLimit" } */
  const ::std::int32_t* get_concurrencyLimit() const& {
    return concurrencyLimit_ref() ? std::addressof(__fbthrift_field_concurrencyLimit) : nullptr;
  }

  /** Glean { "field": "concurrencyLimit" } */
  ::std::int32_t* get_concurrencyLimit() & {
    return concurrencyLimit_ref() ? std::addressof(__fbthrift_field_concurrencyLimit) : nullptr;
  }
  /** Glean { "field": "concurrencyLimit" } */
  ::std::int32_t* get_concurrencyLimit() && = delete;

  /** Glean { "field": "concurrencyLimit" } */
  [[deprecated("Use `FOO.concurrencyLimit() = BAR;` instead of `FOO.set_concurrencyLimit(BAR);`")]]
  ::std::int32_t& set_concurrencyLimit(::std::int32_t concurrencyLimit_) {
    concurrencyLimit_ref() = concurrencyLimit_;
    return __fbthrift_field_concurrencyLimit;
  }

  /** Glean { "field": "qpsLimit" } */
  const ::std::int32_t* get_qpsLimit() const& {
    return qpsLimit_ref() ? std::addressof(__fbthrift_field_qpsLimit) : nullptr;
  }

  /** Glean { "field": "qpsLimit" } */
  ::std::int32_t* get_qpsLimit() & {
    return qpsLimit_ref() ? std::addressof(__fbthrift_field_qpsLimit) : nullptr;
  }
  /** Glean { "field": "qpsLimit" } */
  ::std::int32_t* get_qpsLimit() && = delete;

  /** Glean { "field": "qpsLimit" } */
  [[deprecated("Use `FOO.qpsLimit() = BAR;` instead of `FOO.set_qpsLimit(BAR);`")]]
  ::std::int32_t& set_qpsLimit(::std::int32_t qpsLimit_) {
    qpsLimit_ref() = qpsLimit_;
    return __fbthrift_field_qpsLimit;
  }

  /** Glean { "field": "totalProcessedRequests" } */
  ::std::int64_t get_totalProcessedRequests() const {
    return __fbthrift_field_totalProcessedRequests;
  }

  /** Glean { "field": "totalProcessedRequests" } */
  [[deprecated("Use `FOO.totalProcessedRequests() = BAR;` instead of `FOO.set_totalProcessedRequests(BAR);`")]]
  ::std::int64_t& set_totalProcessedRequests(::std::int64_t totalProcessedRequests_) {
    totalProcessedRequests_ref() = totalProcessedRequests_;
    return __fbthrift_field_totalProcessedRequests;
  }

  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<ConcurrencyControllerDbgInfo>;
  friend void swap(ConcurrencyControllerDbgInfo& a, ConcurrencyControllerDbgInfo& b);
};

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


/** Glean {"file": "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.00/thrift/lib/thrift/serverdbginfo.thrift", "name": "ExecutorDbgInfo", "kind": "struct" } */
class ExecutorDbgInfo 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 = true;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  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::threadsCount
  >;

  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::i32_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 = ExecutorDbgInfo;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  ExecutorDbgInfo();

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

  ExecutorDbgInfo(ExecutorDbgInfo&&) noexcept;

  ExecutorDbgInfo(const ExecutorDbgInfo& src);


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

  ~ExecutorDbgInfo();

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

 public:

  bool operator==(const ExecutorDbgInfo&) const;
  bool operator<(const ExecutorDbgInfo&) 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": "threadsCount" } */
  template <typename..., typename T = ::std::int32_t>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> threadsCount_ref() const& {
    return {this->__fbthrift_field_threadsCount, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "threadsCount" } */
  template <typename..., typename T = ::std::int32_t>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> threadsCount_ref() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_threadsCount), __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "threadsCount" } */
  template <typename..., typename T = ::std::int32_t>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> threadsCount_ref() & {
    return {this->__fbthrift_field_threadsCount, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "threadsCount" } */
  template <typename..., typename T = ::std::int32_t>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> threadsCount_ref() && {
    return {static_cast<T&&>(this->__fbthrift_field_threadsCount), __isset.at(1), __isset.bit(1)};
  }

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

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

  /** Glean { "field": "threadsCount" } */
  template <typename..., typename T = ::std::int32_t>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> threadsCount() & {
    return {this->__fbthrift_field_threadsCount, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "threadsCount" } */
  template <typename..., typename T = ::std::int32_t>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> threadsCount() && {
    return {static_cast<T&&>(this->__fbthrift_field_threadsCount), __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_ExecutorDbgInfo_name_struct_setter = ::std::string>
  [[deprecated("Use `FOO.name() = BAR;` instead of `FOO.set_name(BAR);`")]]
  ::std::string& set_name(T_ExecutorDbgInfo_name_struct_setter&& name_) {
    name_ref() = std::forward<T_ExecutorDbgInfo_name_struct_setter>(name_);
    return __fbthrift_field_name;
  }

  /** Glean { "field": "threadsCount" } */
  const ::std::int32_t* get_threadsCount() const& {
    return threadsCount_ref() ? std::addressof(__fbthrift_field_threadsCount) : nullptr;
  }

  /** Glean { "field": "threadsCount" } */
  ::std::int32_t* get_threadsCount() & {
    return threadsCount_ref() ? std::addressof(__fbthrift_field_threadsCount) : nullptr;
  }
  /** Glean { "field": "threadsCount" } */
  ::std::int32_t* get_threadsCount() && = delete;

  /** Glean { "field": "threadsCount" } */
  [[deprecated("Use `FOO.threadsCount() = BAR;` instead of `FOO.set_threadsCount(BAR);`")]]
  ::std::int32_t& set_threadsCount(::std::int32_t threadsCount_) {
    threadsCount_ref() = threadsCount_;
    return __fbthrift_field_threadsCount;
  }

  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<ExecutorDbgInfo>;
  friend void swap(ExecutorDbgInfo& a, ExecutorDbgInfo& b);
};

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


/** Glean {"file": "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.00/thrift/lib/thrift/serverdbginfo.thrift", "name": "ResourcePoolDbgInfo", "kind": "struct" } */
class ResourcePoolDbgInfo 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 = true;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  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::requestPileDbgInfo,
    ::apache::thrift::ident::concurrencyControllerDbgInfo,
    ::apache::thrift::ident::executorDbgInfo
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0,1,2,3,4};
  using __fbthrift_reflection_type_tags = folly::tag_t<
    ::apache::thrift::type::string_t,
    ::apache::thrift::type::struct_t<::apache::thrift::serverdbginfo::RequestPileDbgInfo>,
    ::apache::thrift::type::struct_t<::apache::thrift::serverdbginfo::ConcurrencyControllerDbgInfo>,
    ::apache::thrift::type::struct_t<::apache::thrift::serverdbginfo::ExecutorDbgInfo>
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 4;

  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 = ResourcePoolDbgInfo;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  ResourcePoolDbgInfo();

  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  ResourcePoolDbgInfo(apache::thrift::FragileConstructor, ::std::string name__arg, ::apache::thrift::serverdbginfo::RequestPileDbgInfo requestPileDbgInfo__arg, ::apache::thrift::serverdbginfo::ConcurrencyControllerDbgInfo concurrencyControllerDbgInfo__arg, ::apache::thrift::serverdbginfo::ExecutorDbgInfo executorDbgInfo__arg);

  ResourcePoolDbgInfo(ResourcePoolDbgInfo&&) noexcept;

  ResourcePoolDbgInfo(const ResourcePoolDbgInfo& src);


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

  ~ResourcePoolDbgInfo();

 private:
  ::std::string __fbthrift_field_name;
 private:
  ::apache::thrift::serverdbginfo::RequestPileDbgInfo __fbthrift_field_requestPileDbgInfo;
 private:
  ::apache::thrift::serverdbginfo::ConcurrencyControllerDbgInfo __fbthrift_field_concurrencyControllerDbgInfo;
 private:
  ::apache::thrift::serverdbginfo::ExecutorDbgInfo __fbthrift_field_executorDbgInfo;
 private:
  apache::thrift::detail::isset_bitset<4, apache::thrift::detail::IssetBitsetOption::Unpacked> __isset;

 public:

  bool operator==(const ResourcePoolDbgInfo&) const;
  bool operator<(const ResourcePoolDbgInfo&) 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": "requestPileDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::RequestPileDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> requestPileDbgInfo_ref() const& {
    return {this->__fbthrift_field_requestPileDbgInfo, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "requestPileDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::RequestPileDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> requestPileDbgInfo_ref() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_requestPileDbgInfo), __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "requestPileDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::RequestPileDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> requestPileDbgInfo_ref() & {
    return {this->__fbthrift_field_requestPileDbgInfo, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "requestPileDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::RequestPileDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> requestPileDbgInfo_ref() && {
    return {static_cast<T&&>(this->__fbthrift_field_requestPileDbgInfo), __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "requestPileDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::RequestPileDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> requestPileDbgInfo() const& {
    return {this->__fbthrift_field_requestPileDbgInfo, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "requestPileDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::RequestPileDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> requestPileDbgInfo() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_requestPileDbgInfo), __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "requestPileDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::RequestPileDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> requestPileDbgInfo() & {
    return {this->__fbthrift_field_requestPileDbgInfo, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "requestPileDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::RequestPileDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> requestPileDbgInfo() && {
    return {static_cast<T&&>(this->__fbthrift_field_requestPileDbgInfo), __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "concurrencyControllerDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::ConcurrencyControllerDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> concurrencyControllerDbgInfo_ref() const& {
    return {this->__fbthrift_field_concurrencyControllerDbgInfo, __isset.at(2), __isset.bit(2)};
  }

  /** Glean { "field": "concurrencyControllerDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::ConcurrencyControllerDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> concurrencyControllerDbgInfo_ref() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_concurrencyControllerDbgInfo), __isset.at(2), __isset.bit(2)};
  }

  /** Glean { "field": "concurrencyControllerDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::ConcurrencyControllerDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> concurrencyControllerDbgInfo_ref() & {
    return {this->__fbthrift_field_concurrencyControllerDbgInfo, __isset.at(2), __isset.bit(2)};
  }

  /** Glean { "field": "concurrencyControllerDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::ConcurrencyControllerDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> concurrencyControllerDbgInfo_ref() && {
    return {static_cast<T&&>(this->__fbthrift_field_concurrencyControllerDbgInfo), __isset.at(2), __isset.bit(2)};
  }

  /** Glean { "field": "concurrencyControllerDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::ConcurrencyControllerDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> concurrencyControllerDbgInfo() const& {
    return {this->__fbthrift_field_concurrencyControllerDbgInfo, __isset.at(2), __isset.bit(2)};
  }

  /** Glean { "field": "concurrencyControllerDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::ConcurrencyControllerDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> concurrencyControllerDbgInfo() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_concurrencyControllerDbgInfo), __isset.at(2), __isset.bit(2)};
  }

  /** Glean { "field": "concurrencyControllerDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::ConcurrencyControllerDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> concurrencyControllerDbgInfo() & {
    return {this->__fbthrift_field_concurrencyControllerDbgInfo, __isset.at(2), __isset.bit(2)};
  }

  /** Glean { "field": "concurrencyControllerDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::ConcurrencyControllerDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> concurrencyControllerDbgInfo() && {
    return {static_cast<T&&>(this->__fbthrift_field_concurrencyControllerDbgInfo), __isset.at(2), __isset.bit(2)};
  }

  /** Glean { "field": "executorDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::ExecutorDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> executorDbgInfo_ref() const& {
    return {this->__fbthrift_field_executorDbgInfo, __isset.at(3), __isset.bit(3)};
  }

  /** Glean { "field": "executorDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::ExecutorDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> executorDbgInfo_ref() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_executorDbgInfo), __isset.at(3), __isset.bit(3)};
  }

  /** Glean { "field": "executorDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::ExecutorDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> executorDbgInfo_ref() & {
    return {this->__fbthrift_field_executorDbgInfo, __isset.at(3), __isset.bit(3)};
  }

  /** Glean { "field": "executorDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::ExecutorDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> executorDbgInfo_ref() && {
    return {static_cast<T&&>(this->__fbthrift_field_executorDbgInfo), __isset.at(3), __isset.bit(3)};
  }

  /** Glean { "field": "executorDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::ExecutorDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> executorDbgInfo() const& {
    return {this->__fbthrift_field_executorDbgInfo, __isset.at(3), __isset.bit(3)};
  }

  /** Glean { "field": "executorDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::ExecutorDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> executorDbgInfo() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_executorDbgInfo), __isset.at(3), __isset.bit(3)};
  }

  /** Glean { "field": "executorDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::ExecutorDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> executorDbgInfo() & {
    return {this->__fbthrift_field_executorDbgInfo, __isset.at(3), __isset.bit(3)};
  }

  /** Glean { "field": "executorDbgInfo" } */
  template <typename..., typename T = ::apache::thrift::serverdbginfo::ExecutorDbgInfo>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> executorDbgInfo() && {
    return {static_cast<T&&>(this->__fbthrift_field_executorDbgInfo), __isset.at(3), __isset.bit(3)};
  }

  /** 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_ResourcePoolDbgInfo_name_struct_setter = ::std::string>
  [[deprecated("Use `FOO.name() = BAR;` instead of `FOO.set_name(BAR);`")]]
  ::std::string& set_name(T_ResourcePoolDbgInfo_name_struct_setter&& name_) {
    name_ref() = std::forward<T_ResourcePoolDbgInfo_name_struct_setter>(name_);
    return __fbthrift_field_name;
  }
  /** Glean { "field": "requestPileDbgInfo" } */
  const ::apache::thrift::serverdbginfo::RequestPileDbgInfo* get_requestPileDbgInfo() const&;
  /** Glean { "field": "requestPileDbgInfo" } */
  ::apache::thrift::serverdbginfo::RequestPileDbgInfo* get_requestPileDbgInfo() &;
  /** Glean { "field": "requestPileDbgInfo" } */
  ::apache::thrift::serverdbginfo::RequestPileDbgInfo* get_requestPileDbgInfo() && = delete;

  /** Glean { "field": "requestPileDbgInfo" } */
  template <typename T_ResourcePoolDbgInfo_requestPileDbgInfo_struct_setter = ::apache::thrift::serverdbginfo::RequestPileDbgInfo>
  [[deprecated("Use `FOO.requestPileDbgInfo() = BAR;` instead of `FOO.set_requestPileDbgInfo(BAR);`")]]
  ::apache::thrift::serverdbginfo::RequestPileDbgInfo& set_requestPileDbgInfo(T_ResourcePoolDbgInfo_requestPileDbgInfo_struct_setter&& requestPileDbgInfo_) {
    requestPileDbgInfo_ref() = std::forward<T_ResourcePoolDbgInfo_requestPileDbgInfo_struct_setter>(requestPileDbgInfo_);
    return __fbthrift_field_requestPileDbgInfo;
  }
  /** Glean { "field": "concurrencyControllerDbgInfo" } */
  const ::apache::thrift::serverdbginfo::ConcurrencyControllerDbgInfo* get_concurrencyControllerDbgInfo() const&;
  /** Glean { "field": "concurrencyControllerDbgInfo" } */
  ::apache::thrift::serverdbginfo::ConcurrencyControllerDbgInfo* get_concurrencyControllerDbgInfo() &;
  /** Glean { "field": "concurrencyControllerDbgInfo" } */
  ::apache::thrift::serverdbginfo::ConcurrencyControllerDbgInfo* get_concurrencyControllerDbgInfo() && = delete;

  /** Glean { "field": "concurrencyControllerDbgInfo" } */
  template <typename T_ResourcePoolDbgInfo_concurrencyControllerDbgInfo_struct_setter = ::apache::thrift::serverdbginfo::ConcurrencyControllerDbgInfo>
  [[deprecated("Use `FOO.concurrencyControllerDbgInfo() = BAR;` instead of `FOO.set_concurrencyControllerDbgInfo(BAR);`")]]
  ::apache::thrift::serverdbginfo::ConcurrencyControllerDbgInfo& set_concurrencyControllerDbgInfo(T_ResourcePoolDbgInfo_concurrencyControllerDbgInfo_struct_setter&& concurrencyControllerDbgInfo_) {
    concurrencyControllerDbgInfo_ref() = std::forward<T_ResourcePoolDbgInfo_concurrencyControllerDbgInfo_struct_setter>(concurrencyControllerDbgInfo_);
    return __fbthrift_field_concurrencyControllerDbgInfo;
  }
  /** Glean { "field": "executorDbgInfo" } */
  const ::apache::thrift::serverdbginfo::ExecutorDbgInfo* get_executorDbgInfo() const&;
  /** Glean { "field": "executorDbgInfo" } */
  ::apache::thrift::serverdbginfo::ExecutorDbgInfo* get_executorDbgInfo() &;
  /** Glean { "field": "executorDbgInfo" } */
  ::apache::thrift::serverdbginfo::ExecutorDbgInfo* get_executorDbgInfo() && = delete;

  /** Glean { "field": "executorDbgInfo" } */
  template <typename T_ResourcePoolDbgInfo_executorDbgInfo_struct_setter = ::apache::thrift::serverdbginfo::ExecutorDbgInfo>
  [[deprecated("Use `FOO.executorDbgInfo() = BAR;` instead of `FOO.set_executorDbgInfo(BAR);`")]]
  ::apache::thrift::serverdbginfo::ExecutorDbgInfo& set_executorDbgInfo(T_ResourcePoolDbgInfo_executorDbgInfo_struct_setter&& executorDbgInfo_) {
    executorDbgInfo_ref() = std::forward<T_ResourcePoolDbgInfo_executorDbgInfo_struct_setter>(executorDbgInfo_);
    return __fbthrift_field_executorDbgInfo;
  }

  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<ResourcePoolDbgInfo>;
  friend void swap(ResourcePoolDbgInfo& a, ResourcePoolDbgInfo& b);
};

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


/** Glean {"file": "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.00/thrift/lib/thrift/serverdbginfo.thrift", "name": "CPUConcurrencyControllerDbgInfo", "kind": "struct" } */
class CPUConcurrencyControllerDbgInfo 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 = true;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  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::mode,
    ::apache::thrift::ident::method,
    ::apache::thrift::ident::cpuTarget,
    ::apache::thrift::ident::cpuLoadSource,
    ::apache::thrift::ident::refreshPeriodMs,
    ::apache::thrift::ident::additiveMultiplier,
    ::apache::thrift::ident::decreaseMultiplier,
    ::apache::thrift::ident::increaseDistanceRatio,
    ::apache::thrift::ident::bumpOnError,
    ::apache::thrift::ident::refractoryPeriodMs,
    ::apache::thrift::ident::initialEstimateFactor,
    ::apache::thrift::ident::initialEstimatePercentile,
    ::apache::thrift::ident::collectionSampleSize,
    ::apache::thrift::ident::concurrencyUpperBound,
    ::apache::thrift::ident::concurrencyLowerBound,
    ::apache::thrift::ident::cpuLoad
  >;

  static constexpr std::int16_t __fbthrift_reflection_field_id_list[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
  using __fbthrift_reflection_type_tags = folly::tag_t<
    ::apache::thrift::type::string_t,
    ::apache::thrift::type::string_t,
    ::apache::thrift::type::i16_t,
    ::apache::thrift::type::string_t,
    ::apache::thrift::type::i64_t,
    ::apache::thrift::type::double_t,
    ::apache::thrift::type::double_t,
    ::apache::thrift::type::double_t,
    ::apache::thrift::type::bool_t,
    ::apache::thrift::type::i64_t,
    ::apache::thrift::type::double_t,
    ::apache::thrift::type::double_t,
    ::apache::thrift::type::i64_t,
    ::apache::thrift::type::i64_t,
    ::apache::thrift::type::i64_t,
    ::apache::thrift::type::i16_t
  >;

  static constexpr std::size_t __fbthrift_field_size_v = 16;

  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 = CPUConcurrencyControllerDbgInfo;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  CPUConcurrencyControllerDbgInfo();

  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  CPUConcurrencyControllerDbgInfo(apache::thrift::FragileConstructor, ::std::string mode__arg, ::std::string method__arg, ::std::int16_t cpuTarget__arg, ::std::string cpuLoadSource__arg, ::std::int64_t refreshPeriodMs__arg, double additiveMultiplier__arg, double decreaseMultiplier__arg, double increaseDistanceRatio__arg, bool bumpOnError__arg, ::std::int64_t refractoryPeriodMs__arg, double initialEstimateFactor__arg, double initialEstimatePercentile__arg, ::std::int64_t collectionSampleSize__arg, ::std::int64_t concurrencyUpperBound__arg, ::std::int64_t concurrencyLowerBound__arg, ::std::int16_t cpuLoad__arg);

  CPUConcurrencyControllerDbgInfo(CPUConcurrencyControllerDbgInfo&&) noexcept;

  CPUConcurrencyControllerDbgInfo(const CPUConcurrencyControllerDbgInfo& src);


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

  ~CPUConcurrencyControllerDbgInfo();

 private:
  ::std::string __fbthrift_field_mode;
 private:
  ::std::string __fbthrift_field_method;
 private:
  ::std::int16_t __fbthrift_field_cpuTarget;
 private:
  ::std::string __fbthrift_field_cpuLoadSource;
 private:
  ::std::int64_t __fbthrift_field_refreshPeriodMs;
 private:
  double __fbthrift_field_additiveMultiplier;
 private:
  double __fbthrift_field_decreaseMultiplier;
 private:
  double __fbthrift_field_increaseDistanceRatio;
 private:
  bool __fbthrift_field_bumpOnError;
 private:
  ::std::int64_t __fbthrift_field_refractoryPeriodMs;
 private:
  double __fbthrift_field_initialEstimateFactor;
 private:
  double __fbthrift_field_initialEstimatePercentile;
 private:
  ::std::int64_t __fbthrift_field_collectionSampleSize;
 private:
  ::std::int64_t __fbthrift_field_concurrencyUpperBound;
 private:
  ::std::int64_t __fbthrift_field_concurrencyLowerBound;
 private:
  ::std::int16_t __fbthrift_field_cpuLoad;
 private:
  apache::thrift::detail::isset_bitset<16, apache::thrift::detail::IssetBitsetOption::Unpacked> __isset;

 public:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /** Glean { "field": "refreshPeriodMs" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> refreshPeriodMs_ref() & {
    return {this->__fbthrift_field_refreshPeriodMs, __isset.at(4), __isset.bit(4)};
  }

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

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

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

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

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

  /** Glean { "field": "additiveMultiplier" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> additiveMultiplier_ref() const& {
    return {this->__fbthrift_field_additiveMultiplier, __isset.at(5), __isset.bit(5)};
  }

  /** Glean { "field": "additiveMultiplier" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&&> additiveMultiplier_ref() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_additiveMultiplier), __isset.at(5), __isset.bit(5)};
  }

  /** Glean { "field": "additiveMultiplier" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> additiveMultiplier_ref() & {
    return {this->__fbthrift_field_additiveMultiplier, __isset.at(5), __isset.bit(5)};
  }

  /** Glean { "field": "additiveMultiplier" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&&> additiveMultiplier_ref() && {
    return {static_cast<T&&>(this->__fbthrift_field_additiveMultiplier), __isset.at(5), __isset.bit(5)};
  }

  /** Glean { "field": "additiveMultiplier" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> additiveMultiplier() const& {
    return {this->__fbthrift_field_additiveMultiplier, __isset.at(5), __isset.bit(5)};
  }

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

  /** Glean { "field": "additiveMultiplier" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> additiveMultiplier() & {
    return {this->__fbthrift_field_additiveMultiplier, __isset.at(5), __isset.bit(5)};
  }

  /** Glean { "field": "additiveMultiplier" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&&> additiveMultiplier() && {
    return {static_cast<T&&>(this->__fbthrift_field_additiveMultiplier), __isset.at(5), __isset.bit(5)};
  }

  /** Glean { "field": "decreaseMultiplier" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> decreaseMultiplier_ref() const& {
    return {this->__fbthrift_field_decreaseMultiplier, __isset.at(6), __isset.bit(6)};
  }

  /** Glean { "field": "decreaseMultiplier" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&&> decreaseMultiplier_ref() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_decreaseMultiplier), __isset.at(6), __isset.bit(6)};
  }

  /** Glean { "field": "decreaseMultiplier" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> decreaseMultiplier_ref() & {
    return {this->__fbthrift_field_decreaseMultiplier, __isset.at(6), __isset.bit(6)};
  }

  /** Glean { "field": "decreaseMultiplier" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&&> decreaseMultiplier_ref() && {
    return {static_cast<T&&>(this->__fbthrift_field_decreaseMultiplier), __isset.at(6), __isset.bit(6)};
  }

  /** Glean { "field": "decreaseMultiplier" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> decreaseMultiplier() const& {
    return {this->__fbthrift_field_decreaseMultiplier, __isset.at(6), __isset.bit(6)};
  }

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

  /** Glean { "field": "decreaseMultiplier" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> decreaseMultiplier() & {
    return {this->__fbthrift_field_decreaseMultiplier, __isset.at(6), __isset.bit(6)};
  }

  /** Glean { "field": "decreaseMultiplier" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&&> decreaseMultiplier() && {
    return {static_cast<T&&>(this->__fbthrift_field_decreaseMultiplier), __isset.at(6), __isset.bit(6)};
  }

  /** Glean { "field": "increaseDistanceRatio" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> increaseDistanceRatio_ref() const& {
    return {this->__fbthrift_field_increaseDistanceRatio, __isset.at(7), __isset.bit(7)};
  }

  /** Glean { "field": "increaseDistanceRatio" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&&> increaseDistanceRatio_ref() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_increaseDistanceRatio), __isset.at(7), __isset.bit(7)};
  }

  /** Glean { "field": "increaseDistanceRatio" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> increaseDistanceRatio_ref() & {
    return {this->__fbthrift_field_increaseDistanceRatio, __isset.at(7), __isset.bit(7)};
  }

  /** Glean { "field": "increaseDistanceRatio" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&&> increaseDistanceRatio_ref() && {
    return {static_cast<T&&>(this->__fbthrift_field_increaseDistanceRatio), __isset.at(7), __isset.bit(7)};
  }

  /** Glean { "field": "increaseDistanceRatio" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> increaseDistanceRatio() const& {
    return {this->__fbthrift_field_increaseDistanceRatio, __isset.at(7), __isset.bit(7)};
  }

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

  /** Glean { "field": "increaseDistanceRatio" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> increaseDistanceRatio() & {
    return {this->__fbthrift_field_increaseDistanceRatio, __isset.at(7), __isset.bit(7)};
  }

  /** Glean { "field": "increaseDistanceRatio" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&&> increaseDistanceRatio() && {
    return {static_cast<T&&>(this->__fbthrift_field_increaseDistanceRatio), __isset.at(7), __isset.bit(7)};
  }

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

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

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

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

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

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

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

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

  /** Glean { "field": "refractoryPeriodMs" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> refractoryPeriodMs_ref() const& {
    return {this->__fbthrift_field_refractoryPeriodMs, __isset.at(9), __isset.bit(9)};
  }

  /** Glean { "field": "refractoryPeriodMs" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&&> refractoryPeriodMs_ref() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_refractoryPeriodMs), __isset.at(9), __isset.bit(9)};
  }

  /** Glean { "field": "refractoryPeriodMs" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> refractoryPeriodMs_ref() & {
    return {this->__fbthrift_field_refractoryPeriodMs, __isset.at(9), __isset.bit(9)};
  }

  /** Glean { "field": "refractoryPeriodMs" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&&> refractoryPeriodMs_ref() && {
    return {static_cast<T&&>(this->__fbthrift_field_refractoryPeriodMs), __isset.at(9), __isset.bit(9)};
  }

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

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

  /** Glean { "field": "refractoryPeriodMs" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> refractoryPeriodMs() & {
    return {this->__fbthrift_field_refractoryPeriodMs, __isset.at(9), __isset.bit(9)};
  }

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

  /** Glean { "field": "initialEstimateFactor" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> initialEstimateFactor_ref() const& {
    return {this->__fbthrift_field_initialEstimateFactor, __isset.at(10), __isset.bit(10)};
  }

  /** Glean { "field": "initialEstimateFactor" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&&> initialEstimateFactor_ref() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_initialEstimateFactor), __isset.at(10), __isset.bit(10)};
  }

  /** Glean { "field": "initialEstimateFactor" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> initialEstimateFactor_ref() & {
    return {this->__fbthrift_field_initialEstimateFactor, __isset.at(10), __isset.bit(10)};
  }

  /** Glean { "field": "initialEstimateFactor" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&&> initialEstimateFactor_ref() && {
    return {static_cast<T&&>(this->__fbthrift_field_initialEstimateFactor), __isset.at(10), __isset.bit(10)};
  }

  /** Glean { "field": "initialEstimateFactor" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> initialEstimateFactor() const& {
    return {this->__fbthrift_field_initialEstimateFactor, __isset.at(10), __isset.bit(10)};
  }

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

  /** Glean { "field": "initialEstimateFactor" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> initialEstimateFactor() & {
    return {this->__fbthrift_field_initialEstimateFactor, __isset.at(10), __isset.bit(10)};
  }

  /** Glean { "field": "initialEstimateFactor" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&&> initialEstimateFactor() && {
    return {static_cast<T&&>(this->__fbthrift_field_initialEstimateFactor), __isset.at(10), __isset.bit(10)};
  }

  /** Glean { "field": "initialEstimatePercentile" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> initialEstimatePercentile_ref() const& {
    return {this->__fbthrift_field_initialEstimatePercentile, __isset.at(11), __isset.bit(11)};
  }

  /** Glean { "field": "initialEstimatePercentile" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&&> initialEstimatePercentile_ref() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_initialEstimatePercentile), __isset.at(11), __isset.bit(11)};
  }

  /** Glean { "field": "initialEstimatePercentile" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> initialEstimatePercentile_ref() & {
    return {this->__fbthrift_field_initialEstimatePercentile, __isset.at(11), __isset.bit(11)};
  }

  /** Glean { "field": "initialEstimatePercentile" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&&> initialEstimatePercentile_ref() && {
    return {static_cast<T&&>(this->__fbthrift_field_initialEstimatePercentile), __isset.at(11), __isset.bit(11)};
  }

  /** Glean { "field": "initialEstimatePercentile" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> initialEstimatePercentile() const& {
    return {this->__fbthrift_field_initialEstimatePercentile, __isset.at(11), __isset.bit(11)};
  }

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

  /** Glean { "field": "initialEstimatePercentile" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> initialEstimatePercentile() & {
    return {this->__fbthrift_field_initialEstimatePercentile, __isset.at(11), __isset.bit(11)};
  }

  /** Glean { "field": "initialEstimatePercentile" } */
  template <typename..., typename T = double>
  FOLLY_ERASE ::apache::thrift::field_ref<T&&> initialEstimatePercentile() && {
    return {static_cast<T&&>(this->__fbthrift_field_initialEstimatePercentile), __isset.at(11), __isset.bit(11)};
  }

  /** Glean { "field": "collectionSampleSize" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> collectionSampleSize_ref() const& {
    return {this->__fbthrift_field_collectionSampleSize, __isset.at(12), __isset.bit(12)};
  }

  /** Glean { "field": "collectionSampleSize" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&&> collectionSampleSize_ref() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_collectionSampleSize), __isset.at(12), __isset.bit(12)};
  }

  /** Glean { "field": "collectionSampleSize" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> collectionSampleSize_ref() & {
    return {this->__fbthrift_field_collectionSampleSize, __isset.at(12), __isset.bit(12)};
  }

  /** Glean { "field": "collectionSampleSize" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&&> collectionSampleSize_ref() && {
    return {static_cast<T&&>(this->__fbthrift_field_collectionSampleSize), __isset.at(12), __isset.bit(12)};
  }

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

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

  /** Glean { "field": "collectionSampleSize" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> collectionSampleSize() & {
    return {this->__fbthrift_field_collectionSampleSize, __isset.at(12), __isset.bit(12)};
  }

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

  /** Glean { "field": "concurrencyUpperBound" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> concurrencyUpperBound_ref() const& {
    return {this->__fbthrift_field_concurrencyUpperBound, __isset.at(13), __isset.bit(13)};
  }

  /** Glean { "field": "concurrencyUpperBound" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&&> concurrencyUpperBound_ref() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_concurrencyUpperBound), __isset.at(13), __isset.bit(13)};
  }

  /** Glean { "field": "concurrencyUpperBound" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> concurrencyUpperBound_ref() & {
    return {this->__fbthrift_field_concurrencyUpperBound, __isset.at(13), __isset.bit(13)};
  }

  /** Glean { "field": "concurrencyUpperBound" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&&> concurrencyUpperBound_ref() && {
    return {static_cast<T&&>(this->__fbthrift_field_concurrencyUpperBound), __isset.at(13), __isset.bit(13)};
  }

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

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

  /** Glean { "field": "concurrencyUpperBound" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> concurrencyUpperBound() & {
    return {this->__fbthrift_field_concurrencyUpperBound, __isset.at(13), __isset.bit(13)};
  }

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

  /** Glean { "field": "concurrencyLowerBound" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> concurrencyLowerBound_ref() const& {
    return {this->__fbthrift_field_concurrencyLowerBound, __isset.at(14), __isset.bit(14)};
  }

  /** Glean { "field": "concurrencyLowerBound" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&&> concurrencyLowerBound_ref() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_concurrencyLowerBound), __isset.at(14), __isset.bit(14)};
  }

  /** Glean { "field": "concurrencyLowerBound" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> concurrencyLowerBound_ref() & {
    return {this->__fbthrift_field_concurrencyLowerBound, __isset.at(14), __isset.bit(14)};
  }

  /** Glean { "field": "concurrencyLowerBound" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&&> concurrencyLowerBound_ref() && {
    return {static_cast<T&&>(this->__fbthrift_field_concurrencyLowerBound), __isset.at(14), __isset.bit(14)};
  }

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

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

  /** Glean { "field": "concurrencyLowerBound" } */
  template <typename..., typename T = ::std::int64_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> concurrencyLowerBound() & {
    return {this->__fbthrift_field_concurrencyLowerBound, __isset.at(14), __isset.bit(14)};
  }

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

  /** Glean { "field": "cpuLoad" } */
  template <typename..., typename T = ::std::int16_t>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&> cpuLoad_ref() const& {
    return {this->__fbthrift_field_cpuLoad, __isset.at(15), __isset.bit(15)};
  }

  /** Glean { "field": "cpuLoad" } */
  template <typename..., typename T = ::std::int16_t>
  FOLLY_ERASE ::apache::thrift::field_ref<const T&&> cpuLoad_ref() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_cpuLoad), __isset.at(15), __isset.bit(15)};
  }

  /** Glean { "field": "cpuLoad" } */
  template <typename..., typename T = ::std::int16_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> cpuLoad_ref() & {
    return {this->__fbthrift_field_cpuLoad, __isset.at(15), __isset.bit(15)};
  }

  /** Glean { "field": "cpuLoad" } */
  template <typename..., typename T = ::std::int16_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&&> cpuLoad_ref() && {
    return {static_cast<T&&>(this->__fbthrift_field_cpuLoad), __isset.at(15), __isset.bit(15)};
  }

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

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

  /** Glean { "field": "cpuLoad" } */
  template <typename..., typename T = ::std::int16_t>
  FOLLY_ERASE ::apache::thrift::field_ref<T&> cpuLoad() & {
    return {this->__fbthrift_field_cpuLoad, __isset.at(15), __isset.bit(15)};
  }

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

  /** Glean { "field": "mode" } */
  const ::std::string& get_mode() const& {
    return __fbthrift_field_mode;
  }

  /** Glean { "field": "mode" } */
  ::std::string get_mode() && {
    return std::move(__fbthrift_field_mode);
  }

  /** Glean { "field": "mode" } */
  template <typename T_CPUConcurrencyControllerDbgInfo_mode_struct_setter = ::std::string>
  [[deprecated("Use `FOO.mode() = BAR;` instead of `FOO.set_mode(BAR);`")]]
  ::std::string& set_mode(T_CPUConcurrencyControllerDbgInfo_mode_struct_setter&& mode_) {
    mode_ref() = std::forward<T_CPUConcurrencyControllerDbgInfo_mode_struct_setter>(mode_);
    return __fbthrift_field_mode;
  }

  /** Glean { "field": "method" } */
  const ::std::string& get_method() const& {
    return __fbthrift_field_method;
  }

  /** Glean { "field": "method" } */
  ::std::string get_method() && {
    return std::move(__fbthrift_field_method);
  }

  /** Glean { "field": "method" } */
  template <typename T_CPUConcurrencyControllerDbgInfo_method_struct_setter = ::std::string>
  [[deprecated("Use `FOO.method() = BAR;` instead of `FOO.set_method(BAR);`")]]
  ::std::string& set_method(T_CPUConcurrencyControllerDbgInfo_method_struct_setter&& method_) {
    method_ref() = std::forward<T_CPUConcurrencyControllerDbgInfo_method_struct_setter>(method_);
    return __fbthrift_field_method;
  }

  /** Glean { "field": "cpuTarget" } */
  ::std::int16_t get_cpuTarget() const {
    return __fbthrift_field_cpuTarget;
  }

  /** Glean { "field": "cpuTarget" } */
  [[deprecated("Use `FOO.cpuTarget() = BAR;` instead of `FOO.set_cpuTarget(BAR);`")]]
  ::std::int16_t& set_cpuTarget(::std::int16_t cpuTarget_) {
    cpuTarget_ref() = cpuTarget_;
    return __fbthrift_field_cpuTarget;
  }

  /** Glean { "field": "cpuLoadSource" } */
  const ::std::string& get_cpuLoadSource() const& {
    return __fbthrift_field_cpuLoadSource;
  }

  /** Glean { "field": "cpuLoadSource" } */
  ::std::string get_cpuLoadSource() && {
    return std::move(__fbthrift_field_cpuLoadSource);
  }

  /** Glean { "field": "cpuLoadSource" } */
  template <typename T_CPUConcurrencyControllerDbgInfo_cpuLoadSource_struct_setter = ::std::string>
  [[deprecated("Use `FOO.cpuLoadSource() = BAR;` instead of `FOO.set_cpuLoadSource(BAR);`")]]
  ::std::string& set_cpuLoadSource(T_CPUConcurrencyControllerDbgInfo_cpuLoadSource_struct_setter&& cpuLoadSource_) {
    cpuLoadSource_ref() = std::forward<T_CPUConcurrencyControllerDbgInfo_cpuLoadSource_struct_setter>(cpuLoadSource_);
    return __fbthrift_field_cpuLoadSource;
  }

  /** Glean { "field": "refreshPeriodMs" } */
  ::std::int64_t get_refreshPeriodMs() const {
    return __fbthrift_field_refreshPeriodMs;
  }

  /** Glean { "field": "refreshPeriodMs" } */
  [[deprecated("Use `FOO.refreshPeriodMs() = BAR;` instead of `FOO.set_refreshPeriodMs(BAR);`")]]
  ::std::int64_t& set_refreshPeriodMs(::std::int64_t refreshPeriodMs_) {
    refreshPeriodMs_ref() = refreshPeriodMs_;
    return __fbthrift_field_refreshPeriodMs;
  }

  /** Glean { "field": "additiveMultiplier" } */
  double get_additiveMultiplier() const {
    return __fbthrift_field_additiveMultiplier;
  }

  /** Glean { "field": "additiveMultiplier" } */
  [[deprecated("Use `FOO.additiveMultiplier() = BAR;` instead of `FOO.set_additiveMultiplier(BAR);`")]]
  double& set_additiveMultiplier(double additiveMultiplier_) {
    additiveMultiplier_ref() = additiveMultiplier_;
    return __fbthrift_field_additiveMultiplier;
  }

  /** Glean { "field": "decreaseMultiplier" } */
  double get_decreaseMultiplier() const {
    return __fbthrift_field_decreaseMultiplier;
  }

  /** Glean { "field": "decreaseMultiplier" } */
  [[deprecated("Use `FOO.decreaseMultiplier() = BAR;` instead of `FOO.set_decreaseMultiplier(BAR);`")]]
  double& set_decreaseMultiplier(double decreaseMultiplier_) {
    decreaseMultiplier_ref() = decreaseMultiplier_;
    return __fbthrift_field_decreaseMultiplier;
  }

  /** Glean { "field": "increaseDistanceRatio" } */
  double get_increaseDistanceRatio() const {
    return __fbthrift_field_increaseDistanceRatio;
  }

  /** Glean { "field": "increaseDistanceRatio" } */
  [[deprecated("Use `FOO.increaseDistanceRatio() = BAR;` instead of `FOO.set_increaseDistanceRatio(BAR);`")]]
  double& set_increaseDistanceRatio(double increaseDistanceRatio_) {
    increaseDistanceRatio_ref() = increaseDistanceRatio_;
    return __fbthrift_field_increaseDistanceRatio;
  }

  /** Glean { "field": "bumpOnError" } */
  bool get_bumpOnError() const {
    return __fbthrift_field_bumpOnError;
  }

  /** Glean { "field": "bumpOnError" } */
  [[deprecated("Use `FOO.bumpOnError() = BAR;` instead of `FOO.set_bumpOnError(BAR);`")]]
  bool& set_bumpOnError(bool bumpOnError_) {
    bumpOnError_ref() = bumpOnError_;
    return __fbthrift_field_bumpOnError;
  }

  /** Glean { "field": "refractoryPeriodMs" } */
  ::std::int64_t get_refractoryPeriodMs() const {
    return __fbthrift_field_refractoryPeriodMs;
  }

  /** Glean { "field": "refractoryPeriodMs" } */
  [[deprecated("Use `FOO.refractoryPeriodMs() = BAR;` instead of `FOO.set_refractoryPeriodMs(BAR);`")]]
  ::std::int64_t& set_refractoryPeriodMs(::std::int64_t refractoryPeriodMs_) {
    refractoryPeriodMs_ref() = refractoryPeriodMs_;
    return __fbthrift_field_refractoryPeriodMs;
  }

  /** Glean { "field": "initialEstimateFactor" } */
  double get_initialEstimateFactor() const {
    return __fbthrift_field_initialEstimateFactor;
  }

  /** Glean { "field": "initialEstimateFactor" } */
  [[deprecated("Use `FOO.initialEstimateFactor() = BAR;` instead of `FOO.set_initialEstimateFactor(BAR);`")]]
  double& set_initialEstimateFactor(double initialEstimateFactor_) {
    initialEstimateFactor_ref() = initialEstimateFactor_;
    return __fbthrift_field_initialEstimateFactor;
  }

  /** Glean { "field": "initialEstimatePercentile" } */
  double get_initialEstimatePercentile() const {
    return __fbthrift_field_initialEstimatePercentile;
  }

  /** Glean { "field": "initialEstimatePercentile" } */
  [[deprecated("Use `FOO.initialEstimatePercentile() = BAR;` instead of `FOO.set_initialEstimatePercentile(BAR);`")]]
  double& set_initialEstimatePercentile(double initialEstimatePercentile_) {
    initialEstimatePercentile_ref() = initialEstimatePercentile_;
    return __fbthrift_field_initialEstimatePercentile;
  }

  /** Glean { "field": "collectionSampleSize" } */
  ::std::int64_t get_collectionSampleSize() const {
    return __fbthrift_field_collectionSampleSize;
  }

  /** Glean { "field": "collectionSampleSize" } */
  [[deprecated("Use `FOO.collectionSampleSize() = BAR;` instead of `FOO.set_collectionSampleSize(BAR);`")]]
  ::std::int64_t& set_collectionSampleSize(::std::int64_t collectionSampleSize_) {
    collectionSampleSize_ref() = collectionSampleSize_;
    return __fbthrift_field_collectionSampleSize;
  }

  /** Glean { "field": "concurrencyUpperBound" } */
  ::std::int64_t get_concurrencyUpperBound() const {
    return __fbthrift_field_concurrencyUpperBound;
  }

  /** Glean { "field": "concurrencyUpperBound" } */
  [[deprecated("Use `FOO.concurrencyUpperBound() = BAR;` instead of `FOO.set_concurrencyUpperBound(BAR);`")]]
  ::std::int64_t& set_concurrencyUpperBound(::std::int64_t concurrencyUpperBound_) {
    concurrencyUpperBound_ref() = concurrencyUpperBound_;
    return __fbthrift_field_concurrencyUpperBound;
  }

  /** Glean { "field": "concurrencyLowerBound" } */
  ::std::int64_t get_concurrencyLowerBound() const {
    return __fbthrift_field_concurrencyLowerBound;
  }

  /** Glean { "field": "concurrencyLowerBound" } */
  [[deprecated("Use `FOO.concurrencyLowerBound() = BAR;` instead of `FOO.set_concurrencyLowerBound(BAR);`")]]
  ::std::int64_t& set_concurrencyLowerBound(::std::int64_t concurrencyLowerBound_) {
    concurrencyLowerBound_ref() = concurrencyLowerBound_;
    return __fbthrift_field_concurrencyLowerBound;
  }

  /** Glean { "field": "cpuLoad" } */
  ::std::int16_t get_cpuLoad() const {
    return __fbthrift_field_cpuLoad;
  }

  /** Glean { "field": "cpuLoad" } */
  [[deprecated("Use `FOO.cpuLoad() = BAR;` instead of `FOO.set_cpuLoad(BAR);`")]]
  ::std::int16_t& set_cpuLoad(::std::int16_t cpuLoad_) {
    cpuLoad_ref() = cpuLoad_;
    return __fbthrift_field_cpuLoad;
  }

  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<CPUConcurrencyControllerDbgInfo>;
  friend void swap(CPUConcurrencyControllerDbgInfo& a, CPUConcurrencyControllerDbgInfo& b);
};

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


/** Glean {"file": "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_fbthrift/fbthrift/work/fbthrift-2024.09.23.00/thrift/lib/thrift/serverdbginfo.thrift", "name": "ResourcePoolsDbgInfo", "kind": "struct" } */
class ResourcePoolsDbgInfo 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 = true;
  static constexpr bool __fbthrift_cpp2_is_runtime_annotation = false;
  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::enabled,
    ::apache::thrift::ident::resourcePools
  >;

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

  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 = ResourcePoolsDbgInfo;
  static constexpr bool __fbthrift_cpp2_is_union =
    false;
  static constexpr bool __fbthrift_cpp2_uses_op_encode =
    false;


 public:

  ResourcePoolsDbgInfo();

  // FragileConstructor for use in initialization lists only.
  [[deprecated("This constructor is deprecated")]]
  ResourcePoolsDbgInfo(apache::thrift::FragileConstructor, bool enabled__arg, ::std::vector<::apache::thrift::serverdbginfo::ResourcePoolDbgInfo> resourcePools__arg);

  ResourcePoolsDbgInfo(ResourcePoolsDbgInfo&&) noexcept;

  ResourcePoolsDbgInfo(const ResourcePoolsDbgInfo& src);


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

  ~ResourcePoolsDbgInfo();

 private:
  bool __fbthrift_field_enabled;
 private:
  ::std::vector<::apache::thrift::serverdbginfo::ResourcePoolDbgInfo> __fbthrift_field_resourcePools;
 private:
  apache::thrift::detail::isset_bitset<2, apache::thrift::detail::IssetBitsetOption::Unpacked> __isset;

 public:

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

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

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

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

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

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

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

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

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

  /** Glean { "field": "resourcePools" } */
  template <typename..., typename T = ::std::vector<::apache::thrift::serverdbginfo::ResourcePoolDbgInfo>>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> resourcePools_ref() const& {
    return {this->__fbthrift_field_resourcePools, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "resourcePools" } */
  template <typename..., typename T = ::std::vector<::apache::thrift::serverdbginfo::ResourcePoolDbgInfo>>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> resourcePools_ref() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_resourcePools), __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "resourcePools" } */
  template <typename..., typename T = ::std::vector<::apache::thrift::serverdbginfo::ResourcePoolDbgInfo>>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> resourcePools_ref() & {
    return {this->__fbthrift_field_resourcePools, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "resourcePools" } */
  template <typename..., typename T = ::std::vector<::apache::thrift::serverdbginfo::ResourcePoolDbgInfo>>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> resourcePools_ref() && {
    return {static_cast<T&&>(this->__fbthrift_field_resourcePools), __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "resourcePools" } */
  template <typename..., typename T = ::std::vector<::apache::thrift::serverdbginfo::ResourcePoolDbgInfo>>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&> resourcePools() const& {
    return {this->__fbthrift_field_resourcePools, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "resourcePools" } */
  template <typename..., typename T = ::std::vector<::apache::thrift::serverdbginfo::ResourcePoolDbgInfo>>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<const T&&> resourcePools() const&& {
    return {static_cast<const T&&>(this->__fbthrift_field_resourcePools), __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "resourcePools" } */
  template <typename..., typename T = ::std::vector<::apache::thrift::serverdbginfo::ResourcePoolDbgInfo>>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&> resourcePools() & {
    return {this->__fbthrift_field_resourcePools, __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "resourcePools" } */
  template <typename..., typename T = ::std::vector<::apache::thrift::serverdbginfo::ResourcePoolDbgInfo>>
  FOLLY_ERASE ::apache::thrift::optional_field_ref<T&&> resourcePools() && {
    return {static_cast<T&&>(this->__fbthrift_field_resourcePools), __isset.at(1), __isset.bit(1)};
  }

  /** Glean { "field": "enabled" } */
  bool get_enabled() const {
    return __fbthrift_field_enabled;
  }

  /** Glean { "field": "enabled" } */
  [[deprecated("Use `FOO.enabled() = BAR;` instead of `FOO.set_enabled(BAR);`")]]
  bool& set_enabled(bool enabled_) {
    enabled_ref() = enabled_;
    return __fbthrift_field_enabled;
  }
  /** Glean { "field": "resourcePools" } */
  const ::std::vector<::apache::thrift::serverdbginfo::ResourcePoolDbgInfo>* get_resourcePools() const&;
  /** Glean { "field": "resourcePools" } */
  ::std::vector<::apache::thrift::serverdbginfo::ResourcePoolDbgInfo>* get_resourcePools() &;
  /** Glean { "field": "resourcePools" } */
  ::std::vector<::apache::thrift::serverdbginfo::ResourcePoolDbgInfo>* get_resourcePools() && = delete;

  /** Glean { "field": "resourcePools" } */
  template <typename T_ResourcePoolsDbgInfo_resourcePools_struct_setter = ::std::vector<::apache::thrift::serverdbginfo::ResourcePoolDbgInfo>>
  [[deprecated("Use `FOO.resourcePools() = BAR;` instead of `FOO.set_resourcePools(BAR);`")]]
  ::std::vector<::apache::thrift::serverdbginfo::ResourcePoolDbgInfo>& set_resourcePools(T_ResourcePoolsDbgInfo_resourcePools_struct_setter&& resourcePools_) {
    resourcePools_ref() = std::forward<T_ResourcePoolsDbgInfo_resourcePools_struct_setter>(resourcePools_);
    return __fbthrift_field_resourcePools;
  }

  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<ResourcePoolsDbgInfo>;
  friend void swap(ResourcePoolsDbgInfo& a, ResourcePoolsDbgInfo& b);
};

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


} // namespace apache::thrift::serverdbginfo
