|  | # | 
|  | # Licensed to the Apache Software Foundation (ASF) under one | 
|  | # or more contributor license agreements. See the NOTICE file | 
|  | # distributed with this work for additional information | 
|  | # regarding copyright ownership. The ASF licenses this file | 
|  | # to you under the Apache License, Version 2.0 (the | 
|  | # "License"); you may not use this file except in compliance | 
|  | # with the License. You may obtain a copy of the License at | 
|  | # | 
|  | #   http://www.apache.org/licenses/LICENSE-2.0 | 
|  | # | 
|  | # Unless required by applicable law or agreed to in writing, | 
|  | # software distributed under the License is distributed on an | 
|  | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
|  | # KIND, either express or implied. See the License for the | 
|  | # specific language governing permissions and limitations | 
|  | # under the License. | 
|  | # | 
|  |  | 
|  | require 'thrift' | 
|  |  | 
|  | module Fixtures | 
|  | module Structs | 
|  | class OneBool | 
|  | include Thrift::Struct | 
|  | attr_accessor :bool | 
|  | FIELDS = { | 
|  | 1 => {:type => Thrift::Types::BOOL, :name => 'bool'} | 
|  | } | 
|  |  | 
|  | def validate | 
|  | end | 
|  | end | 
|  |  | 
|  | class OneByte | 
|  | include Thrift::Struct | 
|  | attr_accessor :byte | 
|  | FIELDS = { | 
|  | 1 => {:type => Thrift::Types::BYTE, :name => 'byte'} | 
|  | } | 
|  |  | 
|  | def validate | 
|  | end | 
|  | end | 
|  |  | 
|  | class OneI16 | 
|  | include Thrift::Struct | 
|  | attr_accessor :i16 | 
|  | FIELDS = { | 
|  | 1 => {:type => Thrift::Types::I16, :name => 'i16'} | 
|  | } | 
|  |  | 
|  | def validate | 
|  | end | 
|  | end | 
|  |  | 
|  | class OneI32 | 
|  | include Thrift::Struct | 
|  | attr_accessor :i32 | 
|  | FIELDS = { | 
|  | 1 => {:type => Thrift::Types::I32, :name => 'i32'} | 
|  | } | 
|  |  | 
|  | def validate | 
|  | end | 
|  | end | 
|  |  | 
|  | class OneI64 | 
|  | include Thrift::Struct | 
|  | attr_accessor :i64 | 
|  | FIELDS = { | 
|  | 1 => {:type => Thrift::Types::I64, :name => 'i64'} | 
|  | } | 
|  |  | 
|  | def validate | 
|  | end | 
|  | end | 
|  |  | 
|  | class OneDouble | 
|  | include Thrift::Struct | 
|  | attr_accessor :double | 
|  | FIELDS = { | 
|  | 1 => {:type => Thrift::Types::DOUBLE, :name => 'double'} | 
|  | } | 
|  |  | 
|  | def validate | 
|  | end | 
|  | end | 
|  |  | 
|  | class OneString | 
|  | include Thrift::Struct | 
|  | attr_accessor :string | 
|  | FIELDS = { | 
|  | 1 => {:type => Thrift::Types::STRING, :name => 'string'} | 
|  | } | 
|  |  | 
|  | def validate | 
|  | end | 
|  | end | 
|  |  | 
|  | class OneMap | 
|  | include Thrift::Struct | 
|  | attr_accessor :map | 
|  | FIELDS = { | 
|  | 1 => {:type => Thrift::Types::MAP, :name => 'map', :key => {:type => Thrift::Types::STRING}, :value => {:type => Thrift::Types::STRING}} | 
|  | } | 
|  |  | 
|  | def validate | 
|  | end | 
|  | end | 
|  |  | 
|  | class NestedMap | 
|  | include Thrift::Struct | 
|  | attr_accessor :map | 
|  | FIELDS = { | 
|  | 0 => {:type => Thrift::Types::MAP, :name => 'map', :key => {:type => Thrift::Types::I32}, :value => {:type => Thrift::Types::MAP, :key => {:type => Thrift::Types::I32}, :value => {:type => Thrift::Types::I32}}} | 
|  | } | 
|  |  | 
|  | def validate | 
|  | end | 
|  | end | 
|  |  | 
|  | class OneList | 
|  | include Thrift::Struct | 
|  | attr_accessor :list | 
|  | FIELDS = { | 
|  | 1 => {:type => Thrift::Types::LIST, :name => 'list', :element => {:type => Thrift::Types::STRING}} | 
|  | } | 
|  |  | 
|  | def validate | 
|  | end | 
|  | end | 
|  |  | 
|  | class NestedList | 
|  | include Thrift::Struct | 
|  | attr_accessor :list | 
|  | FIELDS = { | 
|  | 0 => {:type => Thrift::Types::LIST, :name => 'list', :element => {:type => Thrift::Types::LIST, :element => { :type => Thrift::Types::I32 } } } | 
|  | } | 
|  |  | 
|  | def validate | 
|  | end | 
|  | end | 
|  |  | 
|  | class OneSet | 
|  | include Thrift::Struct | 
|  | attr_accessor :set | 
|  | FIELDS = { | 
|  | 1 => {:type => Thrift::Types::SET, :name => 'set', :element => {:type => Thrift::Types::STRING}} | 
|  | } | 
|  |  | 
|  | def validate | 
|  | end | 
|  | end | 
|  |  | 
|  | class NestedSet | 
|  | include Thrift::Struct | 
|  | attr_accessor :set | 
|  | FIELDS = { | 
|  | 1 => {:type => Thrift::Types::SET, :name => 'set', :element => {:type => Thrift::Types::SET, :element => { :type => Thrift::Types::STRING } }} | 
|  | } | 
|  |  | 
|  | def validate | 
|  | end | 
|  | end | 
|  |  | 
|  | # struct OneOfEach { | 
|  | #   1: bool im_true, | 
|  | #   2: bool im_false, | 
|  | #   3: byte a_bite, | 
|  | #   4: i16 integer16, | 
|  | #   5: i32 integer32, | 
|  | #   6: i64 integer64, | 
|  | #   7: double double_precision, | 
|  | #   8: string some_characters, | 
|  | #   9: string zomg_unicode, | 
|  | #   10: bool what_who, | 
|  | #   11: binary base64, | 
|  | # } | 
|  | class OneOfEach | 
|  | include Thrift::Struct | 
|  | attr_accessor :im_true, :im_false, :a_bite, :integer16, :integer32, :integer64, :double_precision, :some_characters, :zomg_unicode, :what_who, :base64 | 
|  | FIELDS = { | 
|  | 1 => {:type => Thrift::Types::BOOL, :name => 'im_true'}, | 
|  | 2 => {:type => Thrift::Types::BOOL, :name => 'im_false'}, | 
|  | 3 => {:type => Thrift::Types::BYTE, :name => 'a_bite'}, | 
|  | 4 => {:type => Thrift::Types::I16, :name => 'integer16'}, | 
|  | 5 => {:type => Thrift::Types::I32, :name => 'integer32'}, | 
|  | 6 => {:type => Thrift::Types::I64, :name => 'integer64'}, | 
|  | 7 => {:type => Thrift::Types::DOUBLE, :name => 'double_precision'}, | 
|  | 8 => {:type => Thrift::Types::STRING, :name => 'some_characters'}, | 
|  | 9 => {:type => Thrift::Types::STRING, :name => 'zomg_unicode'}, | 
|  | 10 => {:type => Thrift::Types::BOOL, :name => 'what_who'}, | 
|  | 11 => {:type => Thrift::Types::STRING, :name => 'base64'} | 
|  | } | 
|  |  | 
|  | # Added for assert_equal | 
|  | def ==(other) | 
|  | [:im_true, :im_false, :a_bite, :integer16, :integer32, :integer64, :double_precision, :some_characters, :zomg_unicode, :what_who, :base64].each do |f| | 
|  | var = "@#{f}" | 
|  | return false if instance_variable_get(var) != other.instance_variable_get(var) | 
|  | end | 
|  | true | 
|  | end | 
|  |  | 
|  | def validate | 
|  | end | 
|  | end | 
|  |  | 
|  | # struct Nested1 { | 
|  | #   1: list<OneOfEach> a_list | 
|  | #   2: map<i32, OneOfEach> i32_map | 
|  | #   3: map<i64, OneOfEach> i64_map | 
|  | #   4: map<double, OneOfEach> dbl_map | 
|  | #   5: map<string, OneOfEach> str_map | 
|  | # } | 
|  | class Nested1 | 
|  | include Thrift::Struct | 
|  | attr_accessor :a_list, :i32_map, :i64_map, :dbl_map, :str_map | 
|  | FIELDS = { | 
|  | 1 => {:type => Thrift::Types::LIST, :name => 'a_list', :element => {:type => Thrift::Types::STRUCT, :class => OneOfEach}}, | 
|  | 2 => {:type => Thrift::Types::MAP, :name => 'i32_map', :key => {:type => Thrift::Types::I32}, :value => {:type => Thrift::Types::STRUCT, :class => OneOfEach}}, | 
|  | 3 => {:type => Thrift::Types::MAP, :name => 'i64_map', :key => {:type => Thrift::Types::I64}, :value => {:type => Thrift::Types::STRUCT, :class => OneOfEach}}, | 
|  | 4 => {:type => Thrift::Types::MAP, :name => 'dbl_map', :key => {:type => Thrift::Types::DOUBLE}, :value => {:type => Thrift::Types::STRUCT, :class => OneOfEach}}, | 
|  | 5 => {:type => Thrift::Types::MAP, :name => 'str_map', :key => {:type => Thrift::Types::STRING}, :value => {:type => Thrift::Types::STRUCT, :class => OneOfEach}} | 
|  | } | 
|  |  | 
|  | def validate | 
|  | end | 
|  | end | 
|  |  | 
|  | # struct Nested2 { | 
|  | #   1: list<Nested1> a_list | 
|  | #   2: map<i32, Nested1> i32_map | 
|  | #   3: map<i64, Nested1> i64_map | 
|  | #   4: map<double, Nested1> dbl_map | 
|  | #   5: map<string, Nested1> str_map | 
|  | # } | 
|  | class Nested2 | 
|  | include Thrift::Struct | 
|  | attr_accessor :a_list, :i32_map, :i64_map, :dbl_map, :str_map | 
|  | FIELDS = { | 
|  | 1 => {:type => Thrift::Types::LIST, :name => 'a_list', :element => {:type => Thrift::Types::STRUCT, :class => Nested1}}, | 
|  | 2 => {:type => Thrift::Types::MAP, :name => 'i32_map', :key => {:type => Thrift::Types::I32}, :value => {:type => Thrift::Types::STRUCT, :class => Nested1}}, | 
|  | 3 => {:type => Thrift::Types::MAP, :name => 'i64_map', :key => {:type => Thrift::Types::I64}, :value => {:type => Thrift::Types::STRUCT, :class => Nested1}}, | 
|  | 4 => {:type => Thrift::Types::MAP, :name => 'dbl_map', :key => {:type => Thrift::Types::DOUBLE}, :value => {:type => Thrift::Types::STRUCT, :class => Nested1}}, | 
|  | 5 => {:type => Thrift::Types::MAP, :name => 'str_map', :key => {:type => Thrift::Types::STRING}, :value => {:type => Thrift::Types::STRUCT, :class => Nested1}} | 
|  | } | 
|  |  | 
|  | def validate | 
|  | end | 
|  | end | 
|  |  | 
|  | # struct Nested3 { | 
|  | #   1: list<Nested2> a_list | 
|  | #   2: map<i32, Nested2> i32_map | 
|  | #   3: map<i64, Nested2> i64_map | 
|  | #   4: map<double, Nested2> dbl_map | 
|  | #   5: map<string, Nested2> str_map | 
|  | # } | 
|  | class Nested3 | 
|  | include Thrift::Struct | 
|  | attr_accessor :a_list, :i32_map, :i64_map, :dbl_map, :str_map | 
|  | FIELDS = { | 
|  | 1 => {:type => Thrift::Types::LIST, :name => 'a_list', :element => {:type => Thrift::Types::STRUCT, :class => Nested2}}, | 
|  | 2 => {:type => Thrift::Types::MAP, :name => 'i32_map', :key => {:type => Thrift::Types::I32}, :value => {:type => Thrift::Types::STRUCT, :class => Nested2}}, | 
|  | 3 => {:type => Thrift::Types::MAP, :name => 'i64_map', :key => {:type => Thrift::Types::I64}, :value => {:type => Thrift::Types::STRUCT, :class => Nested2}}, | 
|  | 4 => {:type => Thrift::Types::MAP, :name => 'dbl_map', :key => {:type => Thrift::Types::DOUBLE}, :value => {:type => Thrift::Types::STRUCT, :class => Nested2}}, | 
|  | 5 => {:type => Thrift::Types::MAP, :name => 'str_map', :key => {:type => Thrift::Types::STRING}, :value => {:type => Thrift::Types::STRUCT, :class => Nested2}} | 
|  | } | 
|  |  | 
|  | def validate | 
|  | end | 
|  | end | 
|  |  | 
|  | # struct Nested4 { | 
|  | #   1: list<Nested3> a_list | 
|  | #   2: map<i32, Nested3> i32_map | 
|  | #   3: map<i64, Nested3> i64_map | 
|  | #   4: map<double, Nested3> dbl_map | 
|  | #   5: map<string, Nested3> str_map | 
|  | # } | 
|  | class Nested4 | 
|  | include Thrift::Struct | 
|  | attr_accessor :a_list, :i32_map, :i64_map, :dbl_map, :str_map | 
|  | FIELDS = { | 
|  | 1 => {:type => Thrift::Types::LIST, :name => 'a_list', :element => {:type => Thrift::Types::STRUCT, :class => Nested3}}, | 
|  | 2 => {:type => Thrift::Types::MAP, :name => 'i32_map', :key => {:type => Thrift::Types::I32}, :value => {:type => Thrift::Types::STRUCT, :class => Nested3}}, | 
|  | 3 => {:type => Thrift::Types::MAP, :name => 'i64_map', :key => {:type => Thrift::Types::I64}, :value => {:type => Thrift::Types::STRUCT, :class => Nested3}}, | 
|  | 4 => {:type => Thrift::Types::MAP, :name => 'dbl_map', :key => {:type => Thrift::Types::DOUBLE}, :value => {:type => Thrift::Types::STRUCT, :class => Nested3}}, | 
|  | 5 => {:type => Thrift::Types::MAP, :name => 'str_map', :key => {:type => Thrift::Types::STRING}, :value => {:type => Thrift::Types::STRUCT, :class => Nested3}} | 
|  | } | 
|  |  | 
|  | def validate | 
|  | end | 
|  | end | 
|  | end | 
|  | end |