/**
 * Autogenerated by Thrift for /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_fbthrift/fbthrift/work/fbthrift-2024.01.22.00/thrift/lib/thrift/reflection.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/reflection_types.h"

namespace apache { namespace thrift {

template <> struct TEnumDataStorage<::apache::thrift::reflection::Type> {
  using type = ::apache::thrift::reflection::Type;
  static constexpr const std::size_t size = 16;
  static constexpr std::array<type, size> values = {{
      type::TYPE_VOID,
      type::TYPE_STRING,
      type::TYPE_BOOL,
      type::TYPE_BYTE,
      type::TYPE_I16,
      type::TYPE_I32,
      type::TYPE_I64,
      type::TYPE_DOUBLE,
      type::TYPE_ENUM,
      type::TYPE_LIST,
      type::TYPE_SET,
      type::TYPE_MAP,
      type::TYPE_STRUCT,
      type::TYPE_SERVICE,
      type::TYPE_PROGRAM,
      type::TYPE_FLOAT,
  }};
  static constexpr std::array<folly::StringPiece, size> names = {{
      "TYPE_VOID",
      "TYPE_STRING",
      "TYPE_BOOL",
      "TYPE_BYTE",
      "TYPE_I16",
      "TYPE_I32",
      "TYPE_I64",
      "TYPE_DOUBLE",
      "TYPE_ENUM",
      "TYPE_LIST",
      "TYPE_SET",
      "TYPE_MAP",
      "TYPE_STRUCT",
      "TYPE_SERVICE",
      "TYPE_PROGRAM",
      "TYPE_FLOAT",
  }};
};

template <> struct TStructDataStorage<::apache::thrift::reflection::StructField> {
  static constexpr const std::size_t fields_size = 5;
  static const folly::StringPiece name;
  static const std::array<folly::StringPiece, 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<folly::StringPiece, 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::reflection::DataType> {
  static constexpr const std::size_t fields_size = 5;
  static const folly::StringPiece name;
  static const std::array<folly::StringPiece, 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<folly::StringPiece, 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::reflection::Schema> {
  static constexpr const std::size_t fields_size = 2;
  static const folly::StringPiece name;
  static const std::array<folly::StringPiece, 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<folly::StringPiece, fields_size> storage_names;
  // -1 if the field has no isset.
  static const std::array<int, fields_size> isset_indexes;
};

}} // apache::thrift
