1/*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 *   http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19
20namespace cpp yozone
21namespace erl consts_
22namespace haxe constantsDemo
23namespace go constantsdemo
24
25typedef uuid myUUID
26
27struct thing {
28  1: i32  hello,
29  2: i32  goodbye
30  3: uuid id
31  4: myUUID my_id
32  5: optional myUUID my_optional_id
33}
34
35enum enumconstants {
36  ONE = 1,
37  TWO = 2
38}
39
40// struct thing2 {
41//   /** standard docstring */
42//   1: enumconstants val = TWO
43// }
44
45typedef i32 myIntType
46const myIntType myInt = 3
47
48//const map<enumconstants,string> GEN_ENUM_NAMES = {ONE : "HOWDY", TWO: "PARTNER"}
49
50const i32 hex_const = 0x0001F
51const i32 negative_hex_constant = -0x0001F
52
53const i32 GEN_ME = -3523553
54const double GEn_DUB = 325.532
55const double GEn_DU = 085.2355
56const string GEN_STRING = "asldkjasfd"
57
58const double e10 = 1e10   // fails with 0.9.3 and earlier
59const double e11 = -1e10
60
61// uuids are accepted with or without curly braces
62const uuid GEN_UUID =  '00000000-4444-CCCC-ffff-0123456789ab'
63const uuid GEN_GUID = '{00112233-4455-6677-8899-aaBBccDDeeFF}'
64
65const myUUID MY_UUID =  '00000000-4444-CCCC-ffff-0123456789ab'
66const myUUID MY_GUID = '{00112233-4455-6677-8899-aaBBccDDeeFF}'
67
68const map<i32,i32> GEN_MAP = { 35532 : 233, 43523 : 853 }
69const list<i32> GEN_LIST = [ 235235, 23598352, 3253523 ]
70
71const map<i32, map<i32, i32>> GEN_MAPMAP = { 235 : { 532 : 53255, 235:235}}
72
73const map<string,i32> GEN_MAP2 = { "hello" : 233, "lkj98d" : 853, 'lkjsdf' : 098325 }
74
75const thing GEN_THING = { 'hello' : 325, 'goodbye' : 325352, 'id' : '{00112233-4455-6677-8899-aaBBccDDeeFF}', 'my_id': '00000000-4444-CCCC-ffff-0123456789ab', 'my_optional_id': '00000000-4444-CCCC-ffff-0123456789ab' }
76
77const map<i32,thing> GEN_WHAT = { 35 : { 'hello' : 325, 'goodbye' : 325352, 'id' : '00000000-4444-CCCC-ffff-0123456789ab', 'my_id': '00000000-4444-CCCC-ffff-0123456789ab', 'my_optional_id': '00000000-4444-CCCC-ffff-0123456789ab' } }
78
79const set<i32> GEN_SET = [ 235, 235, 53235 ]
80
81const set<uuid> GUID_SET = [ '{00112233-4455-6677-8899-aaBBccDDeeFF}', '00000000-4444-CCCC-ffff-0123456789ab' ]
82
83exception Blah {
84  1:  i32 bing }
85
86exception Gak {}
87
88service yowza {
89  void blingity(),
90  i32 blangity() throws (1: Blah hoot )
91}
92