1// bindgen-flags: --rust-target 1.0 -- -std=c++11
2
3typedef unsigned char uint8_t;
4typedef int int32_t;
5
6template<typename T>
7struct StylePoint {
8  T x;
9  T y;
10};
11
12template<typename T>
13union StyleFoo {
14  enum class Tag : uint8_t {
15    Foo,
16    Bar,
17    Baz,
18    Bazz,
19  };
20
21  struct Foo_Body {
22    Tag tag;
23    int32_t x;
24    StylePoint<T> y;
25    StylePoint<float> z;
26  };
27
28  struct Bar_Body {
29    Tag tag;
30    T _0;
31  };
32
33  struct Baz_Body {
34    Tag tag;
35    StylePoint<T> _0;
36  };
37
38  struct {
39    Tag tag;
40  };
41  Foo_Body foo;
42  Bar_Body bar;
43  Baz_Body baz;
44};
45
46template<typename T>
47struct StyleBar {
48  enum class Tag {
49    Bar1,
50    Bar2,
51    Bar3,
52    Bar4,
53  };
54
55  struct StyleBar1_Body {
56    int32_t x;
57    StylePoint<T> y;
58    StylePoint<float> z;
59  };
60
61  struct StyleBar2_Body {
62    T _0;
63  };
64
65  struct StyleBar3_Body {
66    StylePoint<T> _0;
67  };
68
69  Tag tag;
70  union {
71    StyleBar1_Body bar1;
72    StyleBar2_Body bar2;
73    StyleBar3_Body bar3;
74  };
75};
76