text: /**
   * Autogenerated by Thrift
   *
   * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
   *  @generated
   */
  #pragma once
  
  #include <thrift/lib/cpp/Thrift.h>
  #include <thrift/lib/cpp/TApplicationException.h>
  #include <thrift/lib/cpp/protocol/TProtocol.h>
  #include <thrift/lib/cpp/transport/TTransport.h>
  
  namespace apache { namespace thrift { namespace reflection {
  class Schema;
  }}}
  
  
  
  
  enum class EmptyEnum {
  };
  
  using _EmptyEnum_EnumMapFactory = apache::thrift::detail::TEnumMapFactory<EmptyEnum, EmptyEnum>;
  
  extern const _EmptyEnum_EnumMapFactory::ValuesToNamesMapType _EmptyEnum_VALUES_TO_NAMES;
  
  extern const _EmptyEnum_EnumMapFactory::NamesToValuesMapType _EmptyEnum_NAMES_TO_VALUES;
  
  
  namespace apache { namespace thrift {
  template <> struct TEnumDataStorage< ::EmptyEnum>;
  template <> const std::size_t TEnumTraits< ::EmptyEnum>::size;
  template <> const folly::Range<const  ::EmptyEnum*> TEnumTraits< ::EmptyEnum>::values;
  template <> const folly::Range<const folly::StringPiece*> TEnumTraits< ::EmptyEnum>::names;
  }} // apache::thrift
  
  
  
  enum class MyEnum {
    kMyFoo = 1,
    kMyBar = 2,
  };
  
  using _MyEnum_EnumMapFactory = apache::thrift::detail::TEnumMapFactory<MyEnum, MyEnum>;
  
  extern const _MyEnum_EnumMapFactory::ValuesToNamesMapType _MyEnum_VALUES_TO_NAMES;
  
  extern const _MyEnum_EnumMapFactory::NamesToValuesMapType _MyEnum_NAMES_TO_VALUES;
  
  
  namespace apache { namespace thrift {
  template <> struct TEnumDataStorage< ::MyEnum>;
  template <> const std::size_t TEnumTraits< ::MyEnum>::size;
  template <> const folly::Range<const  ::MyEnum*> TEnumTraits< ::MyEnum>::values;
  template <> const folly::Range<const folly::StringPiece*> TEnumTraits< ::MyEnum>::names;
  template <> inline constexpr  ::MyEnum TEnumTraits< ::MyEnum>::min() {
  return  ::MyEnum::kMyFoo;
  }
  template <> inline constexpr  ::MyEnum TEnumTraits< ::MyEnum>::max() {
  return  ::MyEnum::kMyBar;
  }
  }} // apache::thrift
  
  
  
  class MyStruct;
  
  void swap(MyStruct &a, MyStruct &b);
  
  class MyStruct final : public apache::thrift::TStructType<MyStruct> {
   public:
  
    static const uint64_t _reflection_id = 7958971832214294220U;
    static void _reflection_register(::apache::thrift::reflection::Schema&);
    MyStruct() : baz(static_cast<MyEnum>(0)) {
    }
    template <
      typename T__ThriftWrappedArgument__Ctor,
      typename... Args__ThriftWrappedArgument__Ctor
    >
    explicit MyStruct(
      ::apache::thrift::detail::argument_wrapper<1, T__ThriftWrappedArgument__Ctor> arg,
      Args__ThriftWrappedArgument__Ctor&&... args
    ):
      MyStruct(std::forward<Args__ThriftWrappedArgument__Ctor>(args)...)
    {
      baz = arg.move();
      __isset.baz = true;
    }
  
    MyStruct(const MyStruct&) = default;
    MyStruct& operator=(const MyStruct& src)= default;
    MyStruct(MyStruct&&) = default;
    MyStruct& operator=(MyStruct&&) = default;
  
    void __clear();
    MyEnum baz;
  
    struct __isset {
      __isset() { __clear(); } 
      void __clear() {
        baz = false;
      }
      bool baz;
    } __isset;
  
    bool operator == (const MyStruct &) const;
    bool operator != (const MyStruct& rhs) const {
      return !(*this == rhs);
    }
  
    bool operator < (const MyStruct & ) const;
  
    uint32_t read(apache::thrift::protocol::TProtocol* iprot);
    uint32_t write(apache::thrift::protocol::TProtocol* oprot) const;
  
    static void translateFieldName(
        folly::StringPiece _fname,
        int16_t& fid,
        apache::thrift::protocol::TType& _ftype);
  };
  
  class MyStruct;
  void merge(const MyStruct& from, MyStruct& to);
  void merge(MyStruct&& from, MyStruct& to);
  
  
  