#
# Autogenerated by Thrift
#
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
#

require 'thrift/protocol/tprotocol'

module Numberz
  ONE = 1
  TWO = 2
  THREE = 3
  FIVE = 5
  SIX = 6
  EIGHT = 8
end

class Bonk
  include ThriftStruct
  attr_accessor :message, :type
  FIELDS = {
    1 => {:type => TType::STRING, :name => 'message'},
    2 => {:type => TType::I32, :name => 'type'}
  }

end

class Xtruct
  include ThriftStruct
  attr_accessor :string_thing, :byte_thing, :i32_thing, :i64_thing
  FIELDS = {
    1 => {:type => TType::STRING, :name => 'string_thing'},
    4 => {:type => TType::BYTE, :name => 'byte_thing'},
    9 => {:type => TType::I32, :name => 'i32_thing'},
    11 => {:type => TType::I64, :name => 'i64_thing'}
  }

end

class Xtruct2
  include ThriftStruct
  attr_accessor :byte_thing, :struct_thing, :i32_thing
  FIELDS = {
    1 => {:type => TType::BYTE, :name => 'byte_thing'},
    2 => {:type => TType::STRUCT, :name => 'struct_thing', :class => Xtruct},
    3 => {:type => TType::I32, :name => 'i32_thing'}
  }

end

class Insanity
  include ThriftStruct
  attr_accessor :userMap, :xtructs
  FIELDS = {
    1 => {:type => TType::MAP, :name => 'userMap', :key => {:type => TType::I32}, :value => {:type => TType::I64}},
    2 => {:type => TType::LIST, :name => 'xtructs', :element => {:type => TType::STRUCT, :class => Xtruct}}
  }

end

class EmptyStruct
  include ThriftStruct
  FIELDS = {

  }

end

class OneField
  include ThriftStruct
  attr_accessor :field
  FIELDS = {
    1 => {:type => TType::STRUCT, :name => 'field', :class => EmptyStruct}
  }

end

class Xception < StandardError
  include ThriftStruct
  attr_accessor :errorCode, :message
  FIELDS = {
    1 => {:type => TType::I32, :name => 'errorCode'},
    2 => {:type => TType::STRING, :name => 'message'}
  }

end

class Xception2 < StandardError
  include ThriftStruct
  attr_accessor :errorCode, :struct_thing
  FIELDS = {
    1 => {:type => TType::I32, :name => 'errorCode'},
    2 => {:type => TType::STRUCT, :name => 'struct_thing', :class => Xtruct}
  }

end