/**
 * Autogenerated by Thrift Compiler (0.13.0)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
#ifndef hello_TYPES_H
#define hello_TYPES_H

#include <iosfwd>

#include <thrift/Thrift.h>
#include <thrift/TApplicationException.h>
#include <thrift/TBase.h>
#include <thrift/protocol/TProtocol.h>
#include <thrift/transport/TTransport.h>

#include <functional>
#include <memory>




typedef int32_t MyInteger;

class Hello_struct;

typedef struct _Hello_struct__isset {
  _Hello_struct__isset() : num1(false), num2(false), string1(false) {}
  bool num1 :1;
  bool num2 :1;
  bool string1 :1;
} _Hello_struct__isset;

class Hello_struct : public virtual ::apache::thrift::TBase {
 public:

  Hello_struct(const Hello_struct&);
  Hello_struct& operator=(const Hello_struct&);
  Hello_struct() : num1(0), num2(0), string1() {
  }

  virtual ~Hello_struct() noexcept;
  int32_t num1;
  int64_t num2;
  std::string string1;

  _Hello_struct__isset __isset;

  void __set_num1(const int32_t val);

  void __set_num2(const int64_t val);

  void __set_string1(const std::string& val);

  bool operator == (const Hello_struct & rhs) const
  {
    if (!(num1 == rhs.num1))
      return false;
    if (!(num2 == rhs.num2))
      return false;
    if (!(string1 == rhs.string1))
      return false;
    return true;
  }
  bool operator != (const Hello_struct &rhs) const {
    return !(*this == rhs);
  }

  bool operator < (const Hello_struct & ) const;

  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;

  virtual void printTo(std::ostream& out) const;
};

void swap(Hello_struct &a, Hello_struct &b);

std::ostream& operator<<(std::ostream& out, const Hello_struct& obj);



#endif
