/* * 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 opt_six 7: optional set opt_seven 8: optional map 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 req_six 17: required set req_seven 18: required map 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 def_six 27: set def_seven 28: map 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 opt_six_with_value = [6] 37: optional set opt_seven_with_value = [7] 38: optional map 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 req_six_with_value = [6] 47: required set req_seven_with_value = [7] 48: required map 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 def_six_with_value = [6] 57: set def_seven_with_value = [7] 58: map 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 far_list 301: optional set far_set 302: map far_map 310: required set> far_set_list 311: optional list>> far_list_map_set 312: map 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 stars 2: list stripes 310: set> far_set_list 311: list>> far_list_map_set 312: map 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 opt_six 407: optional set opt_seven 408: optional map opt_eight 409: optional binary opt_nine } typedef RaceDetails RaceDetails2 typedef list RDs exception CrashBoomBang { 1 : i32 MyErrorCode } service foobar { set>> DoItNow( 1 : list>> 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 }