mirror of
https://github.com/valitydev/thrift.git
synced 2024-11-07 10:48:51 +00:00
ea2cba8ba8
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@760189 13f79535-47bb-0310-9956-ffa450edef68
299 lines
10 KiB
Ruby
299 lines
10 KiB
Ruby
#
|
|
# 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
|