/**
 * Autogenerated by Thrift for thrift/compiler/test/fixtures/types/src/module.thrift
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated @nocommit
 */
#pragma once

#include  "thrift/compiler/test/fixtures/types/gen-cpp2/included_fatal_types.h"

#include "thrift/compiler/test/fixtures/types/gen-cpp2/module_types.h"

#include "thrift/compiler/test/fixtures/types/gen-cpp2/module_fatal.h"

#include <fatal/type/traits.h>
#include <fatal/type/list.h>

namespace apache::thrift::fixtures::types {

namespace __fbthrift_refl {
namespace __fbthrift_refl_impl = ::apache::thrift::detail::reflection_impl;

class empty_struct_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
    };

   public:
    using members = __fbthrift_members;
  };


  struct __fbthrift_member {
  };
 public:
  using type = ::apache::thrift::fixtures::types::empty_struct;
  using name = __fbthrift_strings_module::empty_struct;
  using member = __fbthrift_member;
  using members = ::fatal::list<
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(7419850808542508140ull)
  >;
};

class decorated_struct_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using field = __fbthrift_refl_impl::reflected_no_annotations;
    };

    struct __fbthrift_keys {
      using cpp_declare_equal_to = __fbthrift_strings_module::cpp_declare_equal_to;
      using cpp_declare_hash = __fbthrift_strings_module::cpp_declare_hash;
    };

    struct __fbthrift_values {
      using cpp_declare_equal_to = ::fatal::sequence<char, '1'>;
      using cpp_declare_hash = ::fatal::sequence<char, '1'>;
    };

   public:
    using keys = __fbthrift_keys;
    using values = __fbthrift_values;
    using map = ::fatal::list<
        ::apache::thrift::annotation<keys::cpp_declare_equal_to, values::cpp_declare_equal_to>,
        ::apache::thrift::annotation<keys::cpp_declare_hash, values::cpp_declare_hash>
    >;
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_field {
    using owner = ::apache::thrift::fixtures::types::decorated_struct;
    using name = __fbthrift_strings_module::__fbthrift_hash_c0d2856b74d0df05b9d4456b177950351bd88e98b77f12574dfb7a911acee0d0;
    using type = ::std::string;
    using tag = ::apache::thrift::ident::field;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::field>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::field>;
    using type_class = ::apache::thrift::type_class::string;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::field>;
  };

  struct __fbthrift_member {
    using field = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_field>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::decorated_struct;
  using name = __fbthrift_strings_module::decorated_struct;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::field
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(13385404739325801676ull)
  >;
};

class ContainerStruct_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using fieldA = __fbthrift_refl_impl::reflected_no_annotations;
      using fieldB = __fbthrift_refl_impl::reflected_no_annotations;
      using fieldC = __fbthrift_refl_impl::reflected_no_annotations;
      using fieldD = __fbthrift_refl_impl::reflected_no_annotations;
      using fieldE = __fbthrift_refl_impl::reflected_no_annotations;
      using fieldF = __fbthrift_refl_impl::reflected_no_annotations;
      using fieldG = __fbthrift_refl_impl::reflected_no_annotations;
      using fieldH = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_fieldA {
    using owner = ::apache::thrift::fixtures::types::ContainerStruct;
    using name = __fbthrift_strings_module::__fbthrift_hash_a003c1938a10c7729197e235918bdad7bc795ec24b19f24c66e4f24374526ad8;
    using type = ::std::vector<::std::int32_t>;
    using tag = ::apache::thrift::ident::fieldA;
    static constexpr ::apache::thrift::field_id_t id = 12;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::fieldA>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::fieldA>;
    using type_class = ::apache::thrift::type_class::list<::apache::thrift::type_class::integral>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::fieldA>;
  };
  struct __fbthrift_member_fieldB {
    using owner = ::apache::thrift::fixtures::types::ContainerStruct;
    using name = __fbthrift_strings_module::__fbthrift_hash_c7e10d053d5c1a0a0743c1dfc0a38c439cd181cc30829f18cc684e286d0baf27;
    using type = std::list<::std::int32_t>;
    using tag = ::apache::thrift::ident::fieldB;
    static constexpr ::apache::thrift::field_id_t id = 2;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::fieldB>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::fieldB>;
    using type_class = ::apache::thrift::type_class::list<::apache::thrift::type_class::integral>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::fieldB>;
  };
  struct __fbthrift_member_fieldC {
    using owner = ::apache::thrift::fixtures::types::ContainerStruct;
    using name = __fbthrift_strings_module::__fbthrift_hash_7a60aa9f6a5416b61206a441ce84695a835326c0edc0c9b86b92b618f29eb9ed;
    using type = std::deque<::std::int32_t>;
    using tag = ::apache::thrift::ident::fieldC;
    static constexpr ::apache::thrift::field_id_t id = 3;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::fieldC>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::fieldC>;
    using type_class = ::apache::thrift::type_class::list<::apache::thrift::type_class::integral>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::fieldC>;
  };
  struct __fbthrift_member_fieldD {
    using owner = ::apache::thrift::fixtures::types::ContainerStruct;
    using name = __fbthrift_strings_module::__fbthrift_hash_a73c4974ccb5981437f75c22da908dd553c1389729210c7d554a65e1b0f4045a;
    using type = folly::fbvector<::std::int32_t>;
    using tag = ::apache::thrift::ident::fieldD;
    static constexpr ::apache::thrift::field_id_t id = 4;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::fieldD>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::fieldD>;
    using type_class = ::apache::thrift::type_class::list<::apache::thrift::type_class::integral>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::fieldD>;
  };
  struct __fbthrift_member_fieldE {
    using owner = ::apache::thrift::fixtures::types::ContainerStruct;
    using name = __fbthrift_strings_module::__fbthrift_hash_ba2a88de7258832d40bb04e70c8d37d66141754f3561ecfa366dc9496c9a7704;
    using type = folly::small_vector<::std::int32_t>;
    using tag = ::apache::thrift::ident::fieldE;
    static constexpr ::apache::thrift::field_id_t id = 5;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::fieldE>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::fieldE>;
    using type_class = ::apache::thrift::type_class::list<::apache::thrift::type_class::integral>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::fieldE>;
  };
  struct __fbthrift_member_fieldF {
    using owner = ::apache::thrift::fixtures::types::ContainerStruct;
    using name = __fbthrift_strings_module::__fbthrift_hash_68f4d40289380c5c6536b552d834e0a1e0df88fddcd39d4a6d7f3a0b1cf22012;
    using type = ::apache::thrift::fixtures::types::set_i32_7194;
    using tag = ::apache::thrift::ident::fieldF;
    static constexpr ::apache::thrift::field_id_t id = 6;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::fieldF>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::fieldF>;
    using type_class = ::apache::thrift::type_class::set<::apache::thrift::type_class::integral>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::fieldF>;
  };
  struct __fbthrift_member_fieldG {
    using owner = ::apache::thrift::fixtures::types::ContainerStruct;
    using name = __fbthrift_strings_module::__fbthrift_hash_4c4f1be7384da0ab8e9483a59b7018f4671e228da38fa30ee8eabe777bc24cda;
    using type = folly::sorted_vector_map<::std::int32_t, ::std::string>;
    using tag = ::apache::thrift::ident::fieldG;
    static constexpr ::apache::thrift::field_id_t id = 7;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::fieldG>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::fieldG>;
    using type_class = ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::string>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::fieldG>;
  };
  struct __fbthrift_member_fieldH {
    using owner = ::apache::thrift::fixtures::types::ContainerStruct;
    using name = __fbthrift_strings_module::__fbthrift_hash_8841d05aac4c5bad0b39a0f488a8cb61c0d273515073afde4b80ba3b758e687c;
    using type = ::apache::thrift::fixtures::types::SomeMap;
    using tag = ::apache::thrift::ident::fieldH;
    static constexpr ::apache::thrift::field_id_t id = 8;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::fieldH>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::fieldH>;
    using type_class = ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::string>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::fieldH>;
  };

  struct __fbthrift_member {
    using fieldA = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_fieldA>;
    using fieldB = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_fieldB>;
    using fieldC = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_fieldC>;
    using fieldD = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_fieldD>;
    using fieldE = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_fieldE>;
    using fieldF = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_fieldF>;
    using fieldG = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_fieldG>;
    using fieldH = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_fieldH>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::ContainerStruct;
  using name = __fbthrift_strings_module::ContainerStruct;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::fieldA,
      member::fieldB,
      member::fieldC,
      member::fieldD,
      member::fieldE,
      member::fieldF,
      member::fieldG,
      member::fieldH
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(3474903760707401964ull)
  >;
};

class CppTypeStruct_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using fieldA = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_fieldA {
    using owner = ::apache::thrift::fixtures::types::CppTypeStruct;
    using name = __fbthrift_strings_module::__fbthrift_hash_a003c1938a10c7729197e235918bdad7bc795ec24b19f24c66e4f24374526ad8;
    using type = std::list<int32_t>;
    using tag = ::apache::thrift::ident::fieldA;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::fieldA>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::fieldA>;
    using type_class = ::apache::thrift::type_class::list<::apache::thrift::type_class::integral>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::fieldA>;
  };

  struct __fbthrift_member {
    using fieldA = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_fieldA>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::CppTypeStruct;
  using name = __fbthrift_strings_module::CppTypeStruct;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::fieldA
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(7889194779953601868ull)
  >;
};

class VirtualStruct_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using MyIntField = __fbthrift_refl_impl::reflected_no_annotations;
    };

    struct __fbthrift_keys {
      using cpp_virtual = __fbthrift_strings_module::cpp_virtual;
    };

    struct __fbthrift_values {
      using cpp_virtual = ::fatal::sequence<char, '1'>;
    };

   public:
    using keys = __fbthrift_keys;
    using values = __fbthrift_values;
    using map = ::fatal::list<
        ::apache::thrift::annotation<keys::cpp_virtual, values::cpp_virtual>
    >;
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_MyIntField {
    using owner = ::apache::thrift::fixtures::types::VirtualStruct;
    using name = __fbthrift_strings_module::__fbthrift_hash_efda3b7db6b44fe655cfcf36ce339c894e64337d7f192d6ad81a95d5c98a2359;
    using type = ::std::int64_t;
    using tag = ::apache::thrift::ident::MyIntField;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::MyIntField>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::MyIntField>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::MyIntField>;
  };

  struct __fbthrift_member {
    using MyIntField = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_MyIntField>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::VirtualStruct;
  using name = __fbthrift_strings_module::VirtualStruct;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::MyIntField
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(13724968379201536076ull)
  >;
};

class MyStructWithForwardRefEnum_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using a = __fbthrift_refl_impl::reflected_no_annotations;
      using b = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_a {
    using owner = ::apache::thrift::fixtures::types::MyStructWithForwardRefEnum;
    using name = __fbthrift_strings_module::__fbthrift_hash_ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb;
    using type = ::apache::thrift::fixtures::types::MyForwardRefEnum;
    using tag = ::apache::thrift::ident::a;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::a>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::a>;
    using type_class = ::apache::thrift::type_class::enumeration;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::a>;
  };
  struct __fbthrift_member_b {
    using owner = ::apache::thrift::fixtures::types::MyStructWithForwardRefEnum;
    using name = __fbthrift_strings_module::__fbthrift_hash_3e23e8160039594a33894f6564e1b1348bbd7a0088d42c4acb73eeaed59c009d;
    using type = ::apache::thrift::fixtures::types::MyForwardRefEnum;
    using tag = ::apache::thrift::ident::b;
    static constexpr ::apache::thrift::field_id_t id = 2;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::b>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::b>;
    using type_class = ::apache::thrift::type_class::enumeration;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::b>;
  };

  struct __fbthrift_member {
    using a = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_a>;
    using b = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_b>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::MyStructWithForwardRefEnum;
  using name = __fbthrift_strings_module::MyStructWithForwardRefEnum;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::a,
      member::b
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(13020438871755031308ull)
  >;
};

class TrivialNumeric_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using a = __fbthrift_refl_impl::reflected_no_annotations;
      using b = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_a {
    using owner = ::apache::thrift::fixtures::types::TrivialNumeric;
    using name = __fbthrift_strings_module::__fbthrift_hash_ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb;
    using type = ::std::int32_t;
    using tag = ::apache::thrift::ident::a;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::a>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::a>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::a>;
  };
  struct __fbthrift_member_b {
    using owner = ::apache::thrift::fixtures::types::TrivialNumeric;
    using name = __fbthrift_strings_module::__fbthrift_hash_3e23e8160039594a33894f6564e1b1348bbd7a0088d42c4acb73eeaed59c009d;
    using type = bool;
    using tag = ::apache::thrift::ident::b;
    static constexpr ::apache::thrift::field_id_t id = 2;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::b>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::b>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::b>;
  };

  struct __fbthrift_member {
    using a = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_a>;
    using b = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_b>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::TrivialNumeric;
  using name = __fbthrift_strings_module::TrivialNumeric;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::a,
      member::b
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(13240042291233619340ull)
  >;
};

class TrivialNestedWithDefault_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using z = __fbthrift_refl_impl::reflected_no_annotations;
      using n = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_z {
    using owner = ::apache::thrift::fixtures::types::TrivialNestedWithDefault;
    using name = __fbthrift_strings_module::__fbthrift_hash_594e519ae499312b29433b7dd8a97ff068defcba9755b6d5d00e84c524d67b06;
    using type = ::std::int32_t;
    using tag = ::apache::thrift::ident::z;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::z>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::z>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::z>;
  };
  struct __fbthrift_member_n {
    using owner = ::apache::thrift::fixtures::types::TrivialNestedWithDefault;
    using name = __fbthrift_strings_module::__fbthrift_hash_1b16b1df538ba12dc3f97edbb85caa7050d46c148134290feba80f8236c83db9;
    using type = ::apache::thrift::fixtures::types::TrivialNumeric;
    using tag = ::apache::thrift::ident::n;
    static constexpr ::apache::thrift::field_id_t id = 2;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::n>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::n>;
    using type_class = ::apache::thrift::type_class::structure;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::n>;
  };

  struct __fbthrift_member {
    using z = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_z>;
    using n = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_n>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::TrivialNestedWithDefault;
  using name = __fbthrift_strings_module::TrivialNestedWithDefault;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::z,
      member::n
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(14671643653509810348ull)
  >;
};

class ComplexString_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using a = __fbthrift_refl_impl::reflected_no_annotations;
      using b = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_a {
    using owner = ::apache::thrift::fixtures::types::ComplexString;
    using name = __fbthrift_strings_module::__fbthrift_hash_ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb;
    using type = ::std::string;
    using tag = ::apache::thrift::ident::a;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::a>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::a>;
    using type_class = ::apache::thrift::type_class::string;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::a>;
  };
  struct __fbthrift_member_b {
    using owner = ::apache::thrift::fixtures::types::ComplexString;
    using name = __fbthrift_strings_module::__fbthrift_hash_3e23e8160039594a33894f6564e1b1348bbd7a0088d42c4acb73eeaed59c009d;
    using type = ::std::map<::std::string, ::std::int32_t>;
    using tag = ::apache::thrift::ident::b;
    static constexpr ::apache::thrift::field_id_t id = 2;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::b>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::b>;
    using type_class = ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::integral>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::b>;
  };

  struct __fbthrift_member {
    using a = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_a>;
    using b = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_b>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::ComplexString;
  using name = __fbthrift_strings_module::ComplexString;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::a,
      member::b
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(14031875880679100460ull)
  >;
};

class ComplexNestedWithDefault_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using z = __fbthrift_refl_impl::reflected_no_annotations;
      using n = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_z {
    using owner = ::apache::thrift::fixtures::types::ComplexNestedWithDefault;
    using name = __fbthrift_strings_module::__fbthrift_hash_594e519ae499312b29433b7dd8a97ff068defcba9755b6d5d00e84c524d67b06;
    using type = ::std::string;
    using tag = ::apache::thrift::ident::z;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::z>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::z>;
    using type_class = ::apache::thrift::type_class::string;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::z>;
  };
  struct __fbthrift_member_n {
    using owner = ::apache::thrift::fixtures::types::ComplexNestedWithDefault;
    using name = __fbthrift_strings_module::__fbthrift_hash_1b16b1df538ba12dc3f97edbb85caa7050d46c148134290feba80f8236c83db9;
    using type = ::apache::thrift::fixtures::types::ComplexString;
    using tag = ::apache::thrift::ident::n;
    static constexpr ::apache::thrift::field_id_t id = 2;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::n>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::n>;
    using type_class = ::apache::thrift::type_class::structure;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::n>;
  };

  struct __fbthrift_member {
    using z = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_z>;
    using n = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_n>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::ComplexNestedWithDefault;
  using name = __fbthrift_strings_module::ComplexNestedWithDefault;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::z,
      member::n
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(4696534039109938636ull)
  >;
};

class MinPadding_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using small = __fbthrift_refl_impl::reflected_no_annotations;
      using big = __fbthrift_refl_impl::reflected_no_annotations;
      using medium = __fbthrift_refl_impl::reflected_no_annotations;
      using biggish = __fbthrift_refl_impl::reflected_no_annotations;
      using tiny = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_small {
    using owner = ::apache::thrift::fixtures::types::MinPadding;
    using name = __fbthrift_strings_module::__fbthrift_hash_81db8ebbbbc69c6c6ad4a6aa92b76e0c08af547da236b9e2c9dbe1d8285a8130;
    using type = ::std::int8_t;
    using tag = ::apache::thrift::ident::small;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::required;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::small>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::small>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::small>;
  };
  struct __fbthrift_member_big {
    using owner = ::apache::thrift::fixtures::types::MinPadding;
    using name = __fbthrift_strings_module::__fbthrift_hash_2a21fe6d592a19b7de898b50eb53c429608de1a66f3e9f62da19714a770553d1;
    using type = ::std::int64_t;
    using tag = ::apache::thrift::ident::big;
    static constexpr ::apache::thrift::field_id_t id = 2;
    static constexpr auto optional = ::apache::thrift::optionality::required;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::big>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::big>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::big>;
  };
  struct __fbthrift_member_medium {
    using owner = ::apache::thrift::fixtures::types::MinPadding;
    using name = __fbthrift_strings_module::__fbthrift_hash_c082456a7766e23a18db084cd34b6ff510baef506548b897cc80e9b7d3e121c8;
    using type = ::std::int16_t;
    using tag = ::apache::thrift::ident::medium;
    static constexpr ::apache::thrift::field_id_t id = 3;
    static constexpr auto optional = ::apache::thrift::optionality::required;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::medium>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::medium>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::medium>;
  };
  struct __fbthrift_member_biggish {
    using owner = ::apache::thrift::fixtures::types::MinPadding;
    using name = __fbthrift_strings_module::__fbthrift_hash_7af8f5c4c7c52a8a8bd7151e1a20e8003de8a0f5b4c08676355b69772b2ae1d7;
    using type = ::std::int32_t;
    using tag = ::apache::thrift::ident::biggish;
    static constexpr ::apache::thrift::field_id_t id = 4;
    static constexpr auto optional = ::apache::thrift::optionality::required;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::biggish>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::biggish>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::biggish>;
  };
  struct __fbthrift_member_tiny {
    using owner = ::apache::thrift::fixtures::types::MinPadding;
    using name = __fbthrift_strings_module::__fbthrift_hash_8950abfda7b727630760dd35bcf5c3daa7631aff223a90f7728c0d2521dde10c;
    using type = ::std::int8_t;
    using tag = ::apache::thrift::ident::tiny;
    static constexpr ::apache::thrift::field_id_t id = 5;
    static constexpr auto optional = ::apache::thrift::optionality::required;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::tiny>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::tiny>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::tiny>;
  };

  struct __fbthrift_member {
    using small = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_small>;
    using big = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_big>;
    using medium = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_medium>;
    using biggish = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_biggish>;
    using tiny = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_tiny>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::MinPadding;
  using name = __fbthrift_strings_module::MinPadding;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::small,
      member::big,
      member::medium,
      member::biggish,
      member::tiny
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(15544025728095240172ull)
  >;
};

class MinPaddingWithCustomType_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using small = __fbthrift_refl_impl::reflected_no_annotations;
      using big = __fbthrift_refl_impl::reflected_no_annotations;
      using medium = __fbthrift_refl_impl::reflected_no_annotations;
      using biggish = __fbthrift_refl_impl::reflected_no_annotations;
      using tiny = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_small {
    using owner = ::apache::thrift::fixtures::types::MinPaddingWithCustomType;
    using name = __fbthrift_strings_module::__fbthrift_hash_81db8ebbbbc69c6c6ad4a6aa92b76e0c08af547da236b9e2c9dbe1d8285a8130;
    using type = ::std::int8_t;
    using tag = ::apache::thrift::ident::small;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::terse;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::small>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::small>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::small>;
  };
  struct __fbthrift_member_big {
    using owner = ::apache::thrift::fixtures::types::MinPaddingWithCustomType;
    using name = __fbthrift_strings_module::__fbthrift_hash_2a21fe6d592a19b7de898b50eb53c429608de1a66f3e9f62da19714a770553d1;
    using type = ::std::int64_t;
    using tag = ::apache::thrift::ident::big;
    static constexpr ::apache::thrift::field_id_t id = 2;
    static constexpr auto optional = ::apache::thrift::optionality::terse;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::big>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::big>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::big>;
  };
  struct __fbthrift_member_medium {
    using owner = ::apache::thrift::fixtures::types::MinPaddingWithCustomType;
    using name = __fbthrift_strings_module::__fbthrift_hash_c082456a7766e23a18db084cd34b6ff510baef506548b897cc80e9b7d3e121c8;
    using type = ::apache::thrift::adapt_detail::adapted_field_t<::my::Adapter, 3, ::std::int16_t, MinPaddingWithCustomType>;
    using tag = ::apache::thrift::ident::medium;
    static constexpr ::apache::thrift::field_id_t id = 3;
    static constexpr auto optional = ::apache::thrift::optionality::terse;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::medium>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::medium>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::medium>;
  };
  struct __fbthrift_member_biggish {
    using owner = ::apache::thrift::fixtures::types::MinPaddingWithCustomType;
    using name = __fbthrift_strings_module::__fbthrift_hash_7af8f5c4c7c52a8a8bd7151e1a20e8003de8a0f5b4c08676355b69772b2ae1d7;
    using type = ::std::int32_t;
    using tag = ::apache::thrift::ident::biggish;
    static constexpr ::apache::thrift::field_id_t id = 4;
    static constexpr auto optional = ::apache::thrift::optionality::terse;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::biggish>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::biggish>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::biggish>;
  };
  struct __fbthrift_member_tiny {
    using owner = ::apache::thrift::fixtures::types::MinPaddingWithCustomType;
    using name = __fbthrift_strings_module::__fbthrift_hash_8950abfda7b727630760dd35bcf5c3daa7631aff223a90f7728c0d2521dde10c;
    using type = ::std::int8_t;
    using tag = ::apache::thrift::ident::tiny;
    static constexpr ::apache::thrift::field_id_t id = 5;
    static constexpr auto optional = ::apache::thrift::optionality::terse;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::tiny>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::tiny>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::tiny>;
  };

  struct __fbthrift_member {
    using small = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_small>;
    using big = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_big>;
    using medium = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_medium>;
    using biggish = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_biggish>;
    using tiny = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_tiny>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::MinPaddingWithCustomType;
  using name = __fbthrift_strings_module::MinPaddingWithCustomType;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::small,
      member::big,
      member::medium,
      member::biggish,
      member::tiny
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(7684052946909757228ull)
  >;
};

class MyStruct_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using MyIntField = __fbthrift_refl_impl::reflected_no_annotations;
      using MyStringField = __fbthrift_refl_impl::reflected_no_annotations;
      using majorVer = __fbthrift_refl_impl::reflected_no_annotations;
      using data = __fbthrift_refl_impl::reflected_no_annotations;
    };

    struct __fbthrift_keys {
      using cpp_noncomparable = __fbthrift_strings_module::cpp_noncomparable;
    };

    struct __fbthrift_values {
      using cpp_noncomparable = ::fatal::sequence<char, '1'>;
    };

   public:
    using keys = __fbthrift_keys;
    using values = __fbthrift_values;
    using map = ::fatal::list<
        ::apache::thrift::annotation<keys::cpp_noncomparable, values::cpp_noncomparable>
    >;
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_MyIntField {
    using owner = ::apache::thrift::fixtures::types::MyStruct;
    using name = __fbthrift_strings_module::__fbthrift_hash_efda3b7db6b44fe655cfcf36ce339c894e64337d7f192d6ad81a95d5c98a2359;
    using type = ::std::int64_t;
    using tag = ::apache::thrift::ident::MyIntField;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::MyIntField>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::MyIntField>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::MyIntField>;
  };
  struct __fbthrift_member_MyStringField {
    using owner = ::apache::thrift::fixtures::types::MyStruct;
    using name = __fbthrift_strings_module::__fbthrift_hash_b2a30733d38d491ca5f3dcb7fd435cd0774f957f27f886d82bd5018c558abb72;
    using type = ::std::string;
    using tag = ::apache::thrift::ident::MyStringField;
    static constexpr ::apache::thrift::field_id_t id = 2;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::MyStringField>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::MyStringField>;
    using type_class = ::apache::thrift::type_class::string;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::MyStringField>;
  };
  struct __fbthrift_member_majorVer {
    using owner = ::apache::thrift::fixtures::types::MyStruct;
    using name = __fbthrift_strings_module::__fbthrift_hash_79e4897b515e7d37977a04ed0e467ea2f4c4e220207f77f3b8060ada31502e8d;
    using type = ::std::int64_t;
    using tag = ::apache::thrift::ident::majorVer;
    static constexpr ::apache::thrift::field_id_t id = 3;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::majorVer>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::majorVer>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::majorVer>;
  };
  struct __fbthrift_member_data {
    using owner = ::apache::thrift::fixtures::types::MyStruct;
    using name = __fbthrift_strings_module::__fbthrift_hash_3a6eb0790f39ac87c94f3856b2dd2c5d110e6811602261a9a923d3bb23adc8b7;
    using type = ::apache::thrift::fixtures::types::MyDataItem;
    using tag = ::apache::thrift::ident::data;
    static constexpr ::apache::thrift::field_id_t id = 4;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::data>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::data>;
    using type_class = ::apache::thrift::type_class::structure;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::data>;
  };

  struct __fbthrift_member {
    using MyIntField = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_MyIntField>;
    using MyStringField = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_MyStringField>;
    using majorVer = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_majorVer>;
    using data = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_data>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::MyStruct;
  using name = __fbthrift_strings_module::MyStruct;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::MyIntField,
      member::MyStringField,
      member::majorVer,
      member::data
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(7297685140594097580ull)
  >;
};

class MyDataItem_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
    };

    struct __fbthrift_keys {
      using cpp_noncomparable = __fbthrift_strings_module::cpp_noncomparable;
    };

    struct __fbthrift_values {
      using cpp_noncomparable = ::fatal::sequence<char, '1'>;
    };

   public:
    using keys = __fbthrift_keys;
    using values = __fbthrift_values;
    using map = ::fatal::list<
        ::apache::thrift::annotation<keys::cpp_noncomparable, values::cpp_noncomparable>
    >;
    using members = __fbthrift_members;
  };


  struct __fbthrift_member {
  };
 public:
  using type = ::apache::thrift::fixtures::types::MyDataItem;
  using name = __fbthrift_strings_module::MyDataItem;
  using member = __fbthrift_member;
  using members = ::fatal::list<
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(12130458833448478092ull)
  >;
};

class Renamed_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using bar = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_bar {
    using owner = ::apache::thrift::fixtures::types::Renamed;
    using name = __fbthrift_strings_module::__fbthrift_hash_2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae;
    using type = ::std::int64_t;
    using tag = ::apache::thrift::ident::bar;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::bar>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::bar>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::bar>;
  };

  struct __fbthrift_member {
    using bar = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_bar>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::Renamed;
  using name = __fbthrift_strings_module::Renamed;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::bar
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(16991037874674243596ull)
  >;
};

class AnnotatedTypes_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using binary_field = __fbthrift_refl_impl::reflected_no_annotations;
      using list_field = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_binary_field {
    using owner = ::apache::thrift::fixtures::types::AnnotatedTypes;
    using name = __fbthrift_strings_module::__fbthrift_hash_a3d53ffeeecb838901452e3279a13dcce02e91865d83cb64d8f3e5ed8c18bf03;
    using type = ::apache::thrift::fixtures::types::TBinary_8623;
    using tag = ::apache::thrift::ident::binary_field;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::binary_field>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::binary_field>;
    using type_class = ::apache::thrift::type_class::binary;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::binary_field>;
  };
  struct __fbthrift_member_list_field {
    using owner = ::apache::thrift::fixtures::types::AnnotatedTypes;
    using name = __fbthrift_strings_module::__fbthrift_hash_ea7bd83abd8b7b855031fc7f4e0e961fe4c408203a46f5126d609632ddf0c641;
    using type = ::apache::thrift::fixtures::types::SomeListOfTypeMap_2468;
    using tag = ::apache::thrift::ident::list_field;
    static constexpr ::apache::thrift::field_id_t id = 2;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::list_field>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::list_field>;
    using type_class = ::apache::thrift::type_class::list<::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::string>>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::list_field>;
  };

  struct __fbthrift_member {
    using binary_field = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_binary_field>;
    using list_field = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_list_field>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::AnnotatedTypes;
  using name = __fbthrift_strings_module::AnnotatedTypes;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::binary_field,
      member::list_field
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(1793176683567931084ull)
  >;
};

class ForwardUsageRoot_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using ForwardUsageStruct = __fbthrift_refl_impl::reflected_no_annotations;
      using ForwardUsageByRef = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_ForwardUsageStruct {
    using owner = ::apache::thrift::fixtures::types::ForwardUsageRoot;
    using name = __fbthrift_strings_module::__fbthrift_hash_8a7fe0db5af3fa9a49c63f9c602f11a2d5463fd3a3390a101182571af7ef2b7b;
    using type = ::apache::thrift::fixtures::types::ForwardUsageStruct;
    using tag = ::apache::thrift::ident::ForwardUsageStruct;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::optional;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::ForwardUsageStruct>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::ForwardUsageStruct>;
    using type_class = ::apache::thrift::type_class::structure;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::ForwardUsageStruct>;
  };
  struct __fbthrift_member_ForwardUsageByRef {
    using owner = ::apache::thrift::fixtures::types::ForwardUsageRoot;
    using name = __fbthrift_strings_module::__fbthrift_hash_19a44da6ac03b8c8144c3a99a91ac0d0734415ad3c06fc30cee8a5a9121b9d5f;
    using type = ::apache::thrift::fixtures::types::ForwardUsageByRef;
    using tag = ::apache::thrift::ident::ForwardUsageByRef;
    static constexpr ::apache::thrift::field_id_t id = 2;
    static constexpr auto optional = ::apache::thrift::optionality::optional;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::ForwardUsageByRef>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::ForwardUsageByRef>;
    using type_class = ::apache::thrift::type_class::structure;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::ForwardUsageByRef>;
  };

  struct __fbthrift_member {
    using ForwardUsageStruct = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_ForwardUsageStruct>;
    using ForwardUsageByRef = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_ForwardUsageByRef>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::ForwardUsageRoot;
  using name = __fbthrift_strings_module::ForwardUsageRoot;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::ForwardUsageStruct,
      member::ForwardUsageByRef
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(10538773386942393836ull)
  >;
};

class ForwardUsageStruct_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using foo = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_foo {
    using owner = ::apache::thrift::fixtures::types::ForwardUsageStruct;
    using name = __fbthrift_strings_module::__fbthrift_hash_2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae;
    using type = ::apache::thrift::fixtures::types::ForwardUsageRoot;
    using tag = ::apache::thrift::ident::foo;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::optional;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::foo>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::foo>;
    using type_class = ::apache::thrift::type_class::structure;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::foo>;
  };

  struct __fbthrift_member {
    using foo = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_foo>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::ForwardUsageStruct;
  using name = __fbthrift_strings_module::ForwardUsageStruct;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::foo
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(18216634639574172236ull)
  >;
};

class ForwardUsageByRef_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using foo = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_foo {
    using owner = ::apache::thrift::fixtures::types::ForwardUsageByRef;
    using name = __fbthrift_strings_module::__fbthrift_hash_2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae;
    using type = ::apache::thrift::fixtures::types::ForwardUsageRoot;
    using tag = ::apache::thrift::ident::foo;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::optional;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::foo>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::foo>;
    using type_class = ::apache::thrift::type_class::structure;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::foo>;
  };

  struct __fbthrift_member {
    using foo = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_foo>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::ForwardUsageByRef;
  using name = __fbthrift_strings_module::ForwardUsageByRef;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::foo
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(5700960773715231532ull)
  >;
};

class IncompleteMap_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using field = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_field {
    using owner = ::apache::thrift::fixtures::types::IncompleteMap;
    using name = __fbthrift_strings_module::__fbthrift_hash_c0d2856b74d0df05b9d4456b177950351bd88e98b77f12574dfb7a911acee0d0;
    using type = ::std::map<::std::int32_t, ::apache::thrift::fixtures::types::IncompleteMapDep>;
    using tag = ::apache::thrift::ident::field;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::optional;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::field>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::field>;
    using type_class = ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::field>;
  };

  struct __fbthrift_member {
    using field = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_field>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::IncompleteMap;
  using name = __fbthrift_strings_module::IncompleteMap;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::field
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(16588713789532572172ull)
  >;
};

class IncompleteMapDep_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
    };

   public:
    using members = __fbthrift_members;
  };


  struct __fbthrift_member {
  };
 public:
  using type = ::apache::thrift::fixtures::types::IncompleteMapDep;
  using name = __fbthrift_strings_module::IncompleteMapDep;
  using member = __fbthrift_member;
  using members = ::fatal::list<
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(4444540283774281516ull)
  >;
};

class CompleteMap_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using field = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_field {
    using owner = ::apache::thrift::fixtures::types::CompleteMap;
    using name = __fbthrift_strings_module::__fbthrift_hash_c0d2856b74d0df05b9d4456b177950351bd88e98b77f12574dfb7a911acee0d0;
    using type = std::unordered_map<::std::int32_t, ::apache::thrift::fixtures::types::CompleteMapDep>;
    using tag = ::apache::thrift::ident::field;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::optional;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::field>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::field>;
    using type_class = ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::field>;
  };

  struct __fbthrift_member {
    using field = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_field>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::CompleteMap;
  using name = __fbthrift_strings_module::CompleteMap;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::field
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(9142601727424815244ull)
  >;
};

class CompleteMapDep_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
    };

   public:
    using members = __fbthrift_members;
  };


  struct __fbthrift_member {
  };
 public:
  using type = ::apache::thrift::fixtures::types::CompleteMapDep;
  using name = __fbthrift_strings_module::CompleteMapDep;
  using member = __fbthrift_member;
  using members = ::fatal::list<
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(2085767742389370668ull)
  >;
};

class IncompleteList_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using field = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_field {
    using owner = ::apache::thrift::fixtures::types::IncompleteList;
    using name = __fbthrift_strings_module::__fbthrift_hash_c0d2856b74d0df05b9d4456b177950351bd88e98b77f12574dfb7a911acee0d0;
    using type = ::std::list<::apache::thrift::fixtures::types::IncompleteListDep>;
    using tag = ::apache::thrift::ident::field;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::optional;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::field>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::field>;
    using type_class = ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::field>;
  };

  struct __fbthrift_member {
    using field = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_field>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::IncompleteList;
  using name = __fbthrift_strings_module::IncompleteList;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::field
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(9170269616021633420ull)
  >;
};

class IncompleteListDep_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
    };

   public:
    using members = __fbthrift_members;
  };


  struct __fbthrift_member {
  };
 public:
  using type = ::apache::thrift::fixtures::types::IncompleteListDep;
  using name = __fbthrift_strings_module::IncompleteListDep;
  using member = __fbthrift_member;
  using members = ::fatal::list<
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(4545907507200868780ull)
  >;
};

class CompleteList_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using field = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_field {
    using owner = ::apache::thrift::fixtures::types::CompleteList;
    using name = __fbthrift_strings_module::__fbthrift_hash_c0d2856b74d0df05b9d4456b177950351bd88e98b77f12574dfb7a911acee0d0;
    using type = folly::small_vector<::apache::thrift::fixtures::types::CompleteListDep>;
    using tag = ::apache::thrift::ident::field;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::optional;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::field>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::field>;
    using type_class = ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::field>;
  };

  struct __fbthrift_member {
    using field = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_field>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::CompleteList;
  using name = __fbthrift_strings_module::CompleteList;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::field
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(14114502851208255084ull)
  >;
};

class CompleteListDep_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
    };

   public:
    using members = __fbthrift_members;
  };


  struct __fbthrift_member {
  };
 public:
  using type = ::apache::thrift::fixtures::types::CompleteListDep;
  using name = __fbthrift_strings_module::CompleteListDep;
  using member = __fbthrift_member;
  using members = ::fatal::list<
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(2033021518320534444ull)
  >;
};

class AdaptedList_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using field = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_field {
    using owner = ::apache::thrift::fixtures::types::AdaptedList;
    using name = __fbthrift_strings_module::__fbthrift_hash_c0d2856b74d0df05b9d4456b177950351bd88e98b77f12574dfb7a911acee0d0;
    using type = ::std::vector<::apache::thrift::fixtures::types::AdaptedListDep>;
    using tag = ::apache::thrift::ident::field;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::optional;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::field>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::field>;
    using type_class = ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::field>;
  };

  struct __fbthrift_member {
    using field = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_field>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::AdaptedList;
  using name = __fbthrift_strings_module::AdaptedList;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::field
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(125790966858066028ull)
  >;
};

class AdaptedListDep_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using field = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_field {
    using owner = ::apache::thrift::fixtures::types::detail::AdaptedListDep;
    using name = __fbthrift_strings_module::__fbthrift_hash_c0d2856b74d0df05b9d4456b177950351bd88e98b77f12574dfb7a911acee0d0;
    using type = ::apache::thrift::fixtures::types::AdaptedList;
    using tag = ::apache::thrift::ident::field;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::field>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::field>;
    using type_class = ::apache::thrift::type_class::structure;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::field>;
  };

  struct __fbthrift_member {
    using field = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_field>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::detail::AdaptedListDep;
  using name = __fbthrift_strings_module::AdaptedListDep;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::field
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(18047110259932940396ull)
  >;
};

class DependentAdaptedList_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using field = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_field {
    using owner = ::apache::thrift::fixtures::types::DependentAdaptedList;
    using name = __fbthrift_strings_module::__fbthrift_hash_c0d2856b74d0df05b9d4456b177950351bd88e98b77f12574dfb7a911acee0d0;
    using type = ::std::vector<::apache::thrift::fixtures::types::DependentAdaptedListDep>;
    using tag = ::apache::thrift::ident::field;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::optional;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::field>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::field>;
    using type_class = ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::field>;
  };

  struct __fbthrift_member {
    using field = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_field>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::DependentAdaptedList;
  using name = __fbthrift_strings_module::DependentAdaptedList;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::field
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(7176728000892714092ull)
  >;
};

class DependentAdaptedListDep_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using field = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_field {
    using owner = ::apache::thrift::fixtures::types::detail::DependentAdaptedListDep;
    using name = __fbthrift_strings_module::__fbthrift_hash_c0d2856b74d0df05b9d4456b177950351bd88e98b77f12574dfb7a911acee0d0;
    using type = ::std::int16_t;
    using tag = ::apache::thrift::ident::field;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::optional;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::field>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::field>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::field>;
  };

  struct __fbthrift_member {
    using field = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_field>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::detail::DependentAdaptedListDep;
  using name = __fbthrift_strings_module::DependentAdaptedListDep;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::field
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(6008111321105911756ull)
  >;
};

class AllocatorAware_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using aa_list = __fbthrift_refl_impl::reflected_no_annotations;
      using aa_set = __fbthrift_refl_impl::reflected_no_annotations;
      using aa_map = __fbthrift_refl_impl::reflected_no_annotations;
      using aa_string = __fbthrift_refl_impl::reflected_no_annotations;
      using not_a_container = __fbthrift_refl_impl::reflected_no_annotations;
      using aa_unique = __fbthrift_refl_impl::reflected_no_annotations;
      using aa_shared = __fbthrift_refl_impl::reflected_no_annotations;
    };

    struct __fbthrift_keys {
      using cpp_allocator = __fbthrift_strings_module::cpp_allocator;
    };

    struct __fbthrift_values {
      using cpp_allocator = ::fatal::sequence<char, 's', 'o', 'm', 'e', '_', 'a', 'l', 'l', 'o', 'c', 'a', 't', 'o', 'r'>;
    };

   public:
    using keys = __fbthrift_keys;
    using values = __fbthrift_values;
    using map = ::fatal::list<
        ::apache::thrift::annotation<keys::cpp_allocator, values::cpp_allocator>
    >;
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_aa_list {
    using owner = ::apache::thrift::fixtures::types::AllocatorAware;
    using name = __fbthrift_strings_module::__fbthrift_hash_880a35405ed995030f9d4b4939e636855aa93e6e6173fe61bd40adec636dec29;
    using type = ::apache::thrift::fixtures::types::list_i32_9187;
    using tag = ::apache::thrift::ident::aa_list;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::aa_list>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::aa_list>;
    using type_class = ::apache::thrift::type_class::list<::apache::thrift::type_class::integral>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::aa_list>;
  };
  struct __fbthrift_member_aa_set {
    using owner = ::apache::thrift::fixtures::types::AllocatorAware;
    using name = __fbthrift_strings_module::__fbthrift_hash_bfaf0acc93bb6b488b6a5a8d0bcc12a66bdac79da50021adc4da36e22a6af810;
    using type = ::apache::thrift::fixtures::types::set_i32_7070;
    using tag = ::apache::thrift::ident::aa_set;
    static constexpr ::apache::thrift::field_id_t id = 2;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::aa_set>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::aa_set>;
    using type_class = ::apache::thrift::type_class::set<::apache::thrift::type_class::integral>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::aa_set>;
  };
  struct __fbthrift_member_aa_map {
    using owner = ::apache::thrift::fixtures::types::AllocatorAware;
    using name = __fbthrift_strings_module::__fbthrift_hash_4b52fb402e58543eb406111961ce4b6760c045edd3af4068b93a1ff7ac4ccfc1;
    using type = ::apache::thrift::fixtures::types::map_i32_i32_9565;
    using tag = ::apache::thrift::ident::aa_map;
    static constexpr ::apache::thrift::field_id_t id = 3;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::aa_map>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::aa_map>;
    using type_class = ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::integral>;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::aa_map>;
  };
  struct __fbthrift_member_aa_string {
    using owner = ::apache::thrift::fixtures::types::AllocatorAware;
    using name = __fbthrift_strings_module::__fbthrift_hash_f119bbf23aedae2e52bbe52603d5596f495df52e77522ef10e4e47e6cef18e97;
    using type = ::apache::thrift::fixtures::types::string_5252;
    using tag = ::apache::thrift::ident::aa_string;
    static constexpr ::apache::thrift::field_id_t id = 4;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::aa_string>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::aa_string>;
    using type_class = ::apache::thrift::type_class::string;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::aa_string>;
  };
  struct __fbthrift_member_not_a_container {
    using owner = ::apache::thrift::fixtures::types::AllocatorAware;
    using name = __fbthrift_strings_module::__fbthrift_hash_f6db24d8a8de900ae31838bf4f66ecfa5ce280df4954ad1d3da4a0baef6450fc;
    using type = ::std::int32_t;
    using tag = ::apache::thrift::ident::not_a_container;
    static constexpr ::apache::thrift::field_id_t id = 5;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::not_a_container>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::not_a_container>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::not_a_container>;
  };
  struct __fbthrift_member_aa_unique {
    using owner = ::apache::thrift::fixtures::types::AllocatorAware;
    using name = __fbthrift_strings_module::__fbthrift_hash_55c08bd2971fde106159fb69085c6e57b77b291d5ac214f1479c0b4f41107cf1;
    using type = ::apache::thrift::fixtures::types::i32_9314;
    using tag = ::apache::thrift::ident::aa_unique;
    static constexpr ::apache::thrift::field_id_t id = 6;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::aa_unique>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::aa_unique>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::aa_unique>;
  };
  struct __fbthrift_member_aa_shared {
    using owner = ::apache::thrift::fixtures::types::AllocatorAware;
    using name = __fbthrift_strings_module::__fbthrift_hash_c9fa85c7498e0de702c747ccbfa86a6946006c87e0d3a64b9156945848027d08;
    using type = ::apache::thrift::fixtures::types::i32_9314;
    using tag = ::apache::thrift::ident::aa_shared;
    static constexpr ::apache::thrift::field_id_t id = 7;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::aa_shared>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::aa_shared>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::aa_shared>;
  };

  struct __fbthrift_member {
    using aa_list = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_aa_list>;
    using aa_set = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_aa_set>;
    using aa_map = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_aa_map>;
    using aa_string = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_aa_string>;
    using not_a_container = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_not_a_container>;
    using aa_unique = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_aa_unique>;
    using aa_shared = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_aa_shared>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::AllocatorAware;
  using name = __fbthrift_strings_module::AllocatorAware;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::aa_list,
      member::aa_set,
      member::aa_map,
      member::aa_string,
      member::not_a_container,
      member::aa_unique,
      member::aa_shared
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(435233143439422188ull)
  >;
};

class AllocatorAware2_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using not_a_container = __fbthrift_refl_impl::reflected_no_annotations;
      using box_field = __fbthrift_refl_impl::reflected_no_annotations;
    };

    struct __fbthrift_keys {
      using cpp_allocator = __fbthrift_strings_module::cpp_allocator;
    };

    struct __fbthrift_values {
      using cpp_allocator = ::fatal::sequence<char, 's', 'o', 'm', 'e', '_', 'a', 'l', 'l', 'o', 'c', 'a', 't', 'o', 'r'>;
    };

   public:
    using keys = __fbthrift_keys;
    using values = __fbthrift_values;
    using map = ::fatal::list<
        ::apache::thrift::annotation<keys::cpp_allocator, values::cpp_allocator>
    >;
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_not_a_container {
    using owner = ::apache::thrift::fixtures::types::AllocatorAware2;
    using name = __fbthrift_strings_module::__fbthrift_hash_f6db24d8a8de900ae31838bf4f66ecfa5ce280df4954ad1d3da4a0baef6450fc;
    using type = ::std::int32_t;
    using tag = ::apache::thrift::ident::not_a_container;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::not_a_container>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::not_a_container>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::not_a_container>;
  };
  struct __fbthrift_member_box_field {
    using owner = ::apache::thrift::fixtures::types::AllocatorAware2;
    using name = __fbthrift_strings_module::__fbthrift_hash_eb09df30c303344c1e4a4ebda8428a9b865358242230e1d1917b533b8e65c014;
    using type = ::std::int32_t;
    using tag = ::apache::thrift::ident::box_field;
    static constexpr ::apache::thrift::field_id_t id = 2;
    static constexpr auto optional = ::apache::thrift::optionality::optional;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::box_field>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::box_field>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::box_field>;
  };

  struct __fbthrift_member {
    using not_a_container = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_not_a_container>;
    using box_field = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_box_field>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::AllocatorAware2;
  using name = __fbthrift_strings_module::AllocatorAware2;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::not_a_container,
      member::box_field
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(17013646540360458924ull)
  >;
};

class TypedefStruct_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using i32_field = __fbthrift_refl_impl::reflected_no_annotations;
      using IntTypedef_field = __fbthrift_refl_impl::reflected_no_annotations;
      using UintTypedef_field = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member_i32_field {
    using owner = ::apache::thrift::fixtures::types::TypedefStruct;
    using name = __fbthrift_strings_module::__fbthrift_hash_463a2e2458322db48dcc738e6792afe31f8fb1883cd29f0ecae7719e93de0818;
    using type = ::std::int32_t;
    using tag = ::apache::thrift::ident::i32_field;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::i32_field>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::i32_field>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::i32_field>;
  };
  struct __fbthrift_member_IntTypedef_field {
    using owner = ::apache::thrift::fixtures::types::TypedefStruct;
    using name = __fbthrift_strings_module::__fbthrift_hash_6d4b9ee50b6b0430209f88e2ce0c8ffca5a1b4372666061653e53e2278e74300;
    using type = ::apache::thrift::fixtures::types::IntTypedef;
    using tag = ::apache::thrift::ident::IntTypedef_field;
    static constexpr ::apache::thrift::field_id_t id = 2;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::IntTypedef_field>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::IntTypedef_field>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::IntTypedef_field>;
  };
  struct __fbthrift_member_UintTypedef_field {
    using owner = ::apache::thrift::fixtures::types::TypedefStruct;
    using name = __fbthrift_strings_module::__fbthrift_hash_5ab816af8034a41718cabc63bd821ab7283b905d4770d0a2952ce8e00bb38520;
    using type = ::apache::thrift::fixtures::types::UintTypedef;
    using tag = ::apache::thrift::ident::UintTypedef_field;
    static constexpr ::apache::thrift::field_id_t id = 3;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::UintTypedef_field>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::UintTypedef_field>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::UintTypedef_field>;
  };

  struct __fbthrift_member {
    using i32_field = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_i32_field>;
    using IntTypedef_field = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_IntTypedef_field>;
    using UintTypedef_field = ::apache::thrift::reflected_struct_data_member<__fbthrift_member_UintTypedef_field>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::TypedefStruct;
  using name = __fbthrift_strings_module::TypedefStruct;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::i32_field,
      member::IntTypedef_field,
      member::UintTypedef_field
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(17342541271444691756ull)
  >;
};

class StructWithDoubleUnderscores_struct_traits {
  class __fbthrift_annotations : public __fbthrift_refl_impl::no_annotations {
    class __fbthrift_members {
     public:
      using __field = __fbthrift_refl_impl::reflected_no_annotations;
    };

   public:
    using members = __fbthrift_members;
  };

  struct __fbthrift_member___field {
    using owner = ::apache::thrift::fixtures::types::StructWithDoubleUnderscores;
    using name = __fbthrift_strings_module::__fbthrift_hash_a1cdc34d520653dc2c8afd403ec6a3a1541ce66b6511e8cd5450aa25c7586db8;
    using type = ::std::int32_t;
    using tag = ::apache::thrift::ident::__field;
    static constexpr ::apache::thrift::field_id_t id = 1;
    static constexpr auto optional = ::apache::thrift::optionality::required_of_writer;
    using getter = __fbthrift_refl_impl::data_member_accessor<::apache::thrift::ident::__field>;
    using field_ref_getter = ::apache::thrift::access_field_fn<::apache::thrift::ident::__field>;
    using type_class = ::apache::thrift::type_class::integral;
    using annotations = ::apache::thrift::reflected_annotations<__fbthrift_annotations::members::__field>;
  };

  struct __fbthrift_member {
    using __field = ::apache::thrift::reflected_struct_data_member<__fbthrift_member___field>;
  };
 public:
  using type = ::apache::thrift::fixtures::types::StructWithDoubleUnderscores;
  using name = __fbthrift_strings_module::StructWithDoubleUnderscores;
  using member = __fbthrift_member;
  using members = ::fatal::list<
      member::__field
  >;
  using members_annotations = __fbthrift_annotations::members;
  using metadata = ::apache::thrift::detail::type_common_metadata_impl<
      module_tags::module,
      ::apache::thrift::reflected_annotations<__fbthrift_annotations>,
      static_cast<::apache::thrift::legacy_type_id_t>(11308628853865465068ull)
  >;
};

} // __fbthrift_refl

THRIFT_REGISTER_STRUCT_TRAITS(empty_struct, __fbthrift_refl::empty_struct_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(decorated_struct, __fbthrift_refl::decorated_struct_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(ContainerStruct, __fbthrift_refl::ContainerStruct_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(CppTypeStruct, __fbthrift_refl::CppTypeStruct_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(VirtualStruct, __fbthrift_refl::VirtualStruct_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(MyStructWithForwardRefEnum, __fbthrift_refl::MyStructWithForwardRefEnum_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(TrivialNumeric, __fbthrift_refl::TrivialNumeric_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(TrivialNestedWithDefault, __fbthrift_refl::TrivialNestedWithDefault_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(ComplexString, __fbthrift_refl::ComplexString_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(ComplexNestedWithDefault, __fbthrift_refl::ComplexNestedWithDefault_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(MinPadding, __fbthrift_refl::MinPadding_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(MinPaddingWithCustomType, __fbthrift_refl::MinPaddingWithCustomType_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(MyStruct, __fbthrift_refl::MyStruct_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(MyDataItem, __fbthrift_refl::MyDataItem_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(Renamed, __fbthrift_refl::Renamed_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(AnnotatedTypes, __fbthrift_refl::AnnotatedTypes_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(ForwardUsageRoot, __fbthrift_refl::ForwardUsageRoot_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(ForwardUsageStruct, __fbthrift_refl::ForwardUsageStruct_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(ForwardUsageByRef, __fbthrift_refl::ForwardUsageByRef_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(IncompleteMap, __fbthrift_refl::IncompleteMap_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(IncompleteMapDep, __fbthrift_refl::IncompleteMapDep_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(CompleteMap, __fbthrift_refl::CompleteMap_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(CompleteMapDep, __fbthrift_refl::CompleteMapDep_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(IncompleteList, __fbthrift_refl::IncompleteList_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(IncompleteListDep, __fbthrift_refl::IncompleteListDep_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(CompleteList, __fbthrift_refl::CompleteList_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(CompleteListDep, __fbthrift_refl::CompleteListDep_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(AdaptedList, __fbthrift_refl::AdaptedList_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(detail::AdaptedListDep, __fbthrift_refl::AdaptedListDep_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(DependentAdaptedList, __fbthrift_refl::DependentAdaptedList_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(detail::DependentAdaptedListDep, __fbthrift_refl::DependentAdaptedListDep_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(AllocatorAware, __fbthrift_refl::AllocatorAware_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(AllocatorAware2, __fbthrift_refl::AllocatorAware2_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(TypedefStruct, __fbthrift_refl::TypedefStruct_struct_traits);
THRIFT_REGISTER_STRUCT_TRAITS(StructWithDoubleUnderscores, __fbthrift_refl::StructWithDoubleUnderscores_struct_traits);
} // namespace apache::thrift::fixtures::types
