1/*
2 * Copyright (c) Facebook, Inc. and its affiliates.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *     http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17cpp_include "folly/sorted_vector_types.h"
18
19struct StructA {
20  1: bool fieldA;
21  2: i32 fieldB;
22  3: string fieldC;
23  4: list<i32> fieldD;
24  5: set<i32> fieldE;
25  6: map<i32, string> fieldF;
26  7: list<list<list<i32>>> fieldG;
27  8: set<set<set<i32>>> fieldH;
28  9: map<map<i32, string>, map<i32, string>> fieldI;
29  10: map<list<set<i32>>, set<list<i32>>> fieldJ;
30}
31
32typedef map<i32, string> (cpp.template = "folly::sorted_vector_map") folly_map
33typedef set<i32> (cpp.template = "folly::sorted_vector_set") folly_set
34typedef set<folly_set> (cpp.template = "folly::sorted_vector_set") folly_set_set
35typedef map<folly_map, folly_map> (
36  cpp.template = "folly::sorted_vector_map",
37) folly_map_map
38typedef set<list<i32>> (
39  cpp.template = "folly::sorted_vector_set",
40) folly_list_set
41typedef map<list<folly_set>, folly_list_set> (
42  cpp.template = "folly::sorted_vector_map",
43) folly_list_set_map
44
45struct StructB {
46  1: bool fieldA;
47  2: i32 fieldB;
48  3: string fieldC;
49  4: list<i32> fieldD;
50  5: folly_set fieldE;
51  6: folly_map fieldF;
52  7: list<list<list<i32>>> fieldG;
53  8: set<folly_set_set> (cpp.template = "folly::sorted_vector_set") fieldH;
54  9: folly_map_map fieldI;
55  10: folly_list_set_map fieldJ;
56}
57