/**
 * Autogenerated by Thrift for /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_fbthrift/fbthrift/work/fbthrift-2025.01.13.00/thrift/lib/thrift/RpcMetadata.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_data_h.h>

#include "thrift/lib/thrift/gen-cpp2/RpcMetadata_types.h"

namespace apache { namespace thrift {

template <> struct TEnumDataStorage<::apache::thrift::ChecksumAlgorithm> {
  using type = ::apache::thrift::ChecksumAlgorithm;
  static constexpr const std::size_t size = 3;
  static constexpr std::array<type, size> values = { {
      type::NONE,
      type::CRC32,
      type::XXH3_64,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "NONE"sv,
      "CRC32"sv,
      "XXH3_64"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::ProtocolId> {
  using type = ::apache::thrift::ProtocolId;
  static constexpr const std::size_t size = 2;
  static constexpr std::array<type, size> values = { {
      type::BINARY,
      type::COMPACT,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "BINARY"sv,
      "COMPACT"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::RpcKind> {
  using type = ::apache::thrift::RpcKind;
  static constexpr const std::size_t size = 4;
  static constexpr std::array<type, size> values = { {
      type::SINGLE_REQUEST_SINGLE_RESPONSE,
      type::SINGLE_REQUEST_NO_RESPONSE,
      type::SINGLE_REQUEST_STREAMING_RESPONSE,
      type::SINK,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "SINGLE_REQUEST_SINGLE_RESPONSE"sv,
      "SINGLE_REQUEST_NO_RESPONSE"sv,
      "SINGLE_REQUEST_STREAMING_RESPONSE"sv,
      "SINK"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::RpcPriority> {
  using type = ::apache::thrift::RpcPriority;
  static constexpr const std::size_t size = 6;
  static constexpr std::array<type, size> values = { {
      type::HIGH_IMPORTANT,
      type::HIGH,
      type::IMPORTANT,
      type::NORMAL,
      type::BEST_EFFORT,
      type::N_PRIORITIES,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "HIGH_IMPORTANT"sv,
      "HIGH"sv,
      "IMPORTANT"sv,
      "NORMAL"sv,
      "BEST_EFFORT"sv,
      "N_PRIORITIES"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::TTransform> {
  using type = ::apache::thrift::TTransform;
  static constexpr const std::size_t size = 11;
  static constexpr std::array<type, size> values = { {
      type::NONE,
      type::ZLIB,
      type::ZSTD,
      type::LZ4,
      type::CUSTOM,
      type::ZLIB_LESS,
      type::ZSTD_LESS,
      type::LZ4_LESS,
      type::ZLIB_MORE,
      type::ZSTD_MORE,
      type::LZ4_MORE,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "NONE"sv,
      "ZLIB"sv,
      "ZSTD"sv,
      "LZ4"sv,
      "CUSTOM"sv,
      "ZLIB_LESS"sv,
      "ZSTD_LESS"sv,
      "LZ4_LESS"sv,
      "ZLIB_MORE"sv,
      "ZSTD_MORE"sv,
      "LZ4_MORE"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::CompressionAlgorithm> {
  using type = ::apache::thrift::CompressionAlgorithm;
  static constexpr const std::size_t size = 11;
  static constexpr std::array<type, size> values = { {
      type::NONE,
      type::ZLIB,
      type::ZSTD,
      type::LZ4,
      type::CUSTOM,
      type::ZLIB_LESS,
      type::ZSTD_LESS,
      type::LZ4_LESS,
      type::ZLIB_MORE,
      type::ZSTD_MORE,
      type::LZ4_MORE,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "NONE"sv,
      "ZLIB"sv,
      "ZSTD"sv,
      "LZ4"sv,
      "CUSTOM"sv,
      "ZLIB_LESS"sv,
      "ZSTD_LESS"sv,
      "LZ4_LESS"sv,
      "ZLIB_MORE"sv,
      "ZSTD_MORE"sv,
      "LZ4_MORE"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::ZlibCompressionLevelPreset> {
  using type = ::apache::thrift::ZlibCompressionLevelPreset;
  static constexpr const std::size_t size = 3;
  static constexpr std::array<type, size> values = { {
      type::DEFAULT,
      type::LESS,
      type::MORE,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "DEFAULT"sv,
      "LESS"sv,
      "MORE"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::ZstdCompressionLevelPreset> {
  using type = ::apache::thrift::ZstdCompressionLevelPreset;
  static constexpr const std::size_t size = 3;
  static constexpr std::array<type, size> values = { {
      type::DEFAULT,
      type::LESS,
      type::MORE,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "DEFAULT"sv,
      "LESS"sv,
      "MORE"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::Lz4CompressionLevelPreset> {
  using type = ::apache::thrift::Lz4CompressionLevelPreset;
  static constexpr const std::size_t size = 3;
  static constexpr std::array<type, size> values = { {
      type::DEFAULT,
      type::LESS,
      type::MORE,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "DEFAULT"sv,
      "LESS"sv,
      "MORE"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::ErrorKind> {
  using type = ::apache::thrift::ErrorKind;
  static constexpr const std::size_t size = 4;
  static constexpr std::array<type, size> values = { {
      type::UNSPECIFIED,
      type::TRANSIENT,
      type::STATEFUL,
      type::PERMANENT,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "UNSPECIFIED"sv,
      "TRANSIENT"sv,
      "STATEFUL"sv,
      "PERMANENT"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::ErrorBlame> {
  using type = ::apache::thrift::ErrorBlame;
  static constexpr const std::size_t size = 3;
  static constexpr std::array<type, size> values = { {
      type::UNSPECIFIED,
      type::SERVER,
      type::CLIENT,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "UNSPECIFIED"sv,
      "SERVER"sv,
      "CLIENT"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::ErrorSafety> {
  using type = ::apache::thrift::ErrorSafety;
  static constexpr const std::size_t size = 2;
  static constexpr std::array<type, size> values = { {
      type::UNSPECIFIED,
      type::SAFE,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "UNSPECIFIED"sv,
      "SAFE"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::ResponseRpcErrorCategory> {
  using type = ::apache::thrift::ResponseRpcErrorCategory;
  static constexpr const std::size_t size = 4;
  static constexpr std::array<type, size> values = { {
      type::INTERNAL_ERROR,
      type::INVALID_REQUEST,
      type::LOADSHEDDING,
      type::SHUTDOWN,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "INTERNAL_ERROR"sv,
      "INVALID_REQUEST"sv,
      "LOADSHEDDING"sv,
      "SHUTDOWN"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::ResponseRpcErrorCode> {
  using type = ::apache::thrift::ResponseRpcErrorCode;
  static constexpr const std::size_t size = 23;
  static constexpr std::array<type, size> values = { {
      type::UNKNOWN,
      type::OVERLOAD,
      type::TASK_EXPIRED,
      type::QUEUE_OVERLOADED,
      type::SHUTDOWN,
      type::INJECTED_FAILURE,
      type::REQUEST_PARSING_FAILURE,
      type::QUEUE_TIMEOUT,
      type::RESPONSE_TOO_BIG,
      type::WRONG_RPC_KIND,
      type::UNKNOWN_METHOD,
      type::CHECKSUM_MISMATCH,
      type::INTERRUPTION,
      type::APP_OVERLOAD,
      type::UNKNOWN_INTERACTION_ID,
      type::INTERACTION_CONSTRUCTOR_ERROR,
      type::UNIMPLEMENTED_METHOD,
      type::TENANT_QUOTA_EXCEEDED,
      type::TENANT_BLOCKLISTED,
      type::INTERACTION_LOADSHEDDED,
      type::INTERACTION_LOADSHEDDED_OVERLOAD,
      type::INTERACTION_LOADSHEDDED_APP_OVERLOAD,
      type::INTERACTION_LOADSHEDDED_QUEUE_TIMEOUT,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "UNKNOWN"sv,
      "OVERLOAD"sv,
      "TASK_EXPIRED"sv,
      "QUEUE_OVERLOADED"sv,
      "SHUTDOWN"sv,
      "INJECTED_FAILURE"sv,
      "REQUEST_PARSING_FAILURE"sv,
      "QUEUE_TIMEOUT"sv,
      "RESPONSE_TOO_BIG"sv,
      "WRONG_RPC_KIND"sv,
      "UNKNOWN_METHOD"sv,
      "CHECKSUM_MISMATCH"sv,
      "INTERRUPTION"sv,
      "APP_OVERLOAD"sv,
      "UNKNOWN_INTERACTION_ID"sv,
      "INTERACTION_CONSTRUCTOR_ERROR"sv,
      "UNIMPLEMENTED_METHOD"sv,
      "TENANT_QUOTA_EXCEEDED"sv,
      "TENANT_BLOCKLISTED"sv,
      "INTERACTION_LOADSHEDDED"sv,
      "INTERACTION_LOADSHEDDED_OVERLOAD"sv,
      "INTERACTION_LOADSHEDDED_APP_OVERLOAD"sv,
      "INTERACTION_LOADSHEDDED_QUEUE_TIMEOUT"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::StreamRpcErrorCode> {
  using type = ::apache::thrift::StreamRpcErrorCode;
  static constexpr const std::size_t size = 4;
  static constexpr std::array<type, size> values = { {
      type::UNKNOWN,
      type::CREDIT_TIMEOUT,
      type::CHUNK_TIMEOUT,
      type::SERVER_CLOSING_CONNECTION,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "UNKNOWN"sv,
      "CREDIT_TIMEOUT"sv,
      "CHUNK_TIMEOUT"sv,
      "SERVER_CLOSING_CONNECTION"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::InterfaceKind> {
  using type = ::apache::thrift::InterfaceKind;
  static constexpr const std::size_t size = 4;
  static constexpr std::array<type, size> values = { {
      type::USER,
      type::DEBUGGING,
      type::MONITORING,
      type::PROFILING,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "USER"sv,
      "DEBUGGING"sv,
      "MONITORING"sv,
      "PROFILING"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::DrainCompleteCode> {
  using type = ::apache::thrift::DrainCompleteCode;
  static constexpr const std::size_t size = 1;
  static constexpr std::array<type, size> values = { {
      type::EXCEEDED_INGRESS_MEM_LIMIT,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "EXCEEDED_INGRESS_MEM_LIMIT"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::CodecConfig::Type> {
  using type = ::apache::thrift::CodecConfig::Type;
  static constexpr const std::size_t size = 4;
  static constexpr std::array<type, size> values = { {
      type::zlibConfig,
      type::zstdConfig,
      type::customConfig,
      type::lz4Config,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "zlibConfig"sv,
      "zstdConfig"sv,
      "customConfig"sv,
      "lz4Config"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::PayloadExceptionMetadata::Type> {
  using type = ::apache::thrift::PayloadExceptionMetadata::Type;
  static constexpr const std::size_t size = 4;
  static constexpr std::array<type, size> values = { {
      type::declaredException,
      type::DEPRECATED_proxyException,
      type::appUnknownException,
      type::anyException,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "declaredException"sv,
      "DEPRECATED_proxyException"sv,
      "appUnknownException"sv,
      "anyException"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::PayloadMetadata::Type> {
  using type = ::apache::thrift::PayloadMetadata::Type;
  static constexpr const std::size_t size = 2;
  static constexpr std::array<type, size> values = { {
      type::responseMetadata,
      type::exceptionMetadata,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "responseMetadata"sv,
      "exceptionMetadata"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::ServerPushMetadata::Type> {
  using type = ::apache::thrift::ServerPushMetadata::Type;
  static constexpr const std::size_t size = 3;
  static constexpr std::array<type, size> values = { {
      type::setupResponse,
      type::streamHeadersPush,
      type::drainCompletePush,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "setupResponse"sv,
      "streamHeadersPush"sv,
      "drainCompletePush"sv,
  }};
};

template <> struct TEnumDataStorage<::apache::thrift::ClientPushMetadata::Type> {
  using type = ::apache::thrift::ClientPushMetadata::Type;
  static constexpr const std::size_t size = 3;
  static constexpr std::array<type, size> values = { {
      type::interactionTerminate,
      type::streamHeadersPush,
      type::transportMetadataPush,
  }};
  static constexpr std::array<std::string_view, size> names = { {
      "interactionTerminate"sv,
      "streamHeadersPush"sv,
      "transportMetadataPush"sv,
  }};
};

template <> struct TStructDataStorage<::apache::thrift::Checksum> {
  static constexpr const std::size_t fields_size = 3;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::ZlibCompressionCodecConfig> {
  static constexpr const std::size_t fields_size = 1;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::ZstdCompressionCodecConfig> {
  static constexpr const std::size_t fields_size = 1;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::Lz4CompressionCodecConfig> {
  static constexpr const std::size_t fields_size = 1;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::CustomCompressionCodecConfig> {
  static constexpr const std::size_t fields_size = 1;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::CodecConfig> {
  static constexpr const std::size_t fields_size = 4;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::CompressionConfig> {
  static constexpr const std::size_t fields_size = 2;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::NegotiationParameters> {
  static constexpr const std::size_t fields_size = 2;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::InteractionCreate> {
  static constexpr const std::size_t fields_size = 2;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::InteractionTerminate> {
  static constexpr const std::size_t fields_size = 1;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::FdMetadata> {
  static constexpr const std::size_t fields_size = 2;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::LoggingContext> {
  static constexpr const std::size_t fields_size = 5;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::RequestRpcMetadata> {
  static constexpr const std::size_t fields_size = 21;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::ErrorClassification> {
  static constexpr const std::size_t fields_size = 3;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::PayloadResponseMetadata> {
  static constexpr const std::size_t fields_size = 0;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::PayloadDeclaredExceptionMetadata> {
  static constexpr const std::size_t fields_size = 1;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::PayloadProxyExceptionMetadata> {
  static constexpr const std::size_t fields_size = 0;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::PayloadProxiedExceptionMetadata> {
  static constexpr const std::size_t fields_size = 0;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::PayloadAppUnknownExceptionMetdata> {
  static constexpr const std::size_t fields_size = 1;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::PayloadAnyExceptionMetadata> {
  static constexpr const std::size_t fields_size = 0;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::PayloadExceptionMetadata> {
  static constexpr const std::size_t fields_size = 4;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::PayloadExceptionMetadataBase> {
  static constexpr const std::size_t fields_size = 3;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::PayloadMetadata> {
  static constexpr const std::size_t fields_size = 2;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::ProxiedPayloadMetadata> {
  static constexpr const std::size_t fields_size = 0;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::QueueMetadata> {
  static constexpr const std::size_t fields_size = 2;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::ResponseRpcMetadata> {
  static constexpr const std::size_t fields_size = 11;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::ResponseRpcError> {
  static constexpr const std::size_t fields_size = 5;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::StreamRpcError> {
  static constexpr const std::size_t fields_size = 3;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::StreamPayloadMetadata> {
  static constexpr const std::size_t fields_size = 5;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::ClientMetadata> {
  static constexpr const std::size_t fields_size = 3;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::RequestSetupMetadata> {
  static constexpr const std::size_t fields_size = 10;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::SetupResponse> {
  static constexpr const std::size_t fields_size = 2;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::StreamHeadersPush> {
  static constexpr const std::size_t fields_size = 2;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::TransportMetadataPush> {
  static constexpr const std::size_t fields_size = 1;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::DrainCompletePush> {
  static constexpr const std::size_t fields_size = 1;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::ServerPushMetadata> {
  static constexpr const std::size_t fields_size = 3;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::ClientPushMetadata> {
  static constexpr const std::size_t fields_size = 3;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::HeadersPayloadContent> {
  static constexpr const std::size_t fields_size = 1;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

template <> struct TStructDataStorage<::apache::thrift::HeadersPayloadMetadata> {
  static constexpr const std::size_t fields_size = 1;
  static const std::string_view name;
  static const std::array<std::string_view, fields_size> fields_names;
  static const std::array<int16_t, fields_size> fields_ids;
  static const std::array<protocol::TType, fields_size> fields_types;

 private:
  // The following fields describe internal storage metadata, and are private to
  // prevent user logic from accessing them, but they can be inspected by
  // debuggers.
  static const std::array<std::string_view, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

}} // apache::thrift
