1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
/*
* 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.
*/
// Testcase for THRIFT-5216 generate DeepCopy methods
namespace netstd OptReqDefTest
enum Distance
{
foo = 0,
bar = 1,
baz = 2
}
struct RaceDetails
{
// this is really the max field index used here, intentionally placed at the beginning
666: required Distance triplesix
// without default values
1: optional Distance opt_one
2: optional double opt_two
3: optional i16 opt_three
4: optional string opt_four
5: optional uuid opt_five
6: optional list<i32> opt_six
7: optional set<i64> opt_seven
8: optional map<i8,i16> opt_eight
9: optional binary opt_nine
11: required Distance req_one
12: required double req_two
13: required i16 req_three
14: required string req_four
15: required uuid req_five
16: required list<i32> req_six
17: required set<i64> req_seven
18: required map<i8,i16> req_eight
19: required binary req_nine
21: Distance def_one
22: double def_two
23: i16 def_three
24: string def_four
25: uuid def_five
26: list<i32> def_six
27: set<i64> def_seven
28: map<i8,i16> def_eight
29: binary def_nine
// having default values
31: optional Distance opt_one_with_value = Distance.bar
32: optional double opt_two_with_value = 2.22
33: optional i16 opt_three_with_value = 3
34: optional string opt_four_with_value = "four"
35: optional uuid opt_five_with_value = "55555555-5555-5555-5555-000000000000"
36: optional list<i32> opt_six_with_value = [6]
37: optional set<i64> opt_seven_with_value = [7]
38: optional map<i8,i16> opt_eight_with_value = { 8 : 8 }
39: optional binary opt_nine_with_value = "nine\t"
41: required Distance req_one_with_value = Distance.bar
42: required double req_two_with_value = 2.22
43: required i16 req_three_with_value = 3
44: required string req_four_with_value = "four"
45: required uuid req_five_with_value = "55555555-5555-5555-5555-000000000000"
46: required list<i32> req_six_with_value = [6]
47: required set<i64> req_seven_with_value = [7]
48: required map<i8,i16> req_eight_with_value = { 8 : 8 }
49: required binary req_nine_with_value = "nine"
51: Distance def_one_with_value = Distance.bar
52: double def_two_with_value = 2.22
53: i16 def_three_with_value = 3
54: string def_four_with_value = "four"
55: uuid def_five_with_value = "55555555-5555-5555-5555-000000000000"
56: list<i32> def_six_with_value = [6]
57: set<i64> def_seven_with_value = [7]
58: map<i8,i16> def_eight_with_value = { 8 : 8 }
59: binary def_nine_with_value = "nine"
90: optional bool last_of_the_mohicans
// some more complicated ones, including recursion
300: required list<Distance> far_list
301: optional set<Distance> far_set
302: map<Distance,Distance> far_map
310: required set<list<Distance>> far_set_list
311: optional list<map<i8,set<Distance>>> far_list_map_set
312: map<Distance,RDs> far_map_dist_to_rds
320: required RaceDetails req_nested
321: optional RaceDetails opt_nested
322: RaceDetails def_nested
330: required jack req_union
331: optional jack opt_union
332: jack def_union
}
union jack {
1: list<RaceDetails2> stars
2: list<RDs> stripes
310: set<list<Distance>> far_set_list
311: list<map<i8,set<Distance>>> far_list_map_set
312: map<Distance,RDs> far_map_dist_to_rds
320: jack nested_union
321: RaceDetails nested_struct
401: optional Distance opt_one
402: optional double opt_two
403: optional i16 opt_three
404: optional string opt_four
405: optional uuid opt_five
406: optional list<i32> opt_six
407: optional set<i64> opt_seven
408: optional map<i8,i16> opt_eight
409: optional binary opt_nine
}
typedef RaceDetails RaceDetails2
typedef list<RaceDetails> RDs
exception CrashBoomBang {
1 : i32 MyErrorCode
}
service foobar {
set<set<set<Distance>>> DoItNow( 1 : list<list<list<RaceDetails>>> rd, 2: i32 mitDefault = 42) throws (1: CrashBoomBang cbb)
}
service deprecate_everything {
void Foo( ) ( deprecated = "This method has neither 'x' nor \"y\"" )
void Bar( ) ( deprecated = "Fails to deliver 中文 колбаса" )
void Baz( ) ( deprecated = "Need this to work with tabs (\t) or Umlauts (äöüÄÖÜß) too" )
void Deprecated() ( deprecated ) // no comment
}
|