112a9d9c8Sopenharmony_ci// bindgen-flags: --rust-target 1.0 -- -std=c++11 212a9d9c8Sopenharmony_ci 312a9d9c8Sopenharmony_citypedef unsigned char uint8_t; 412a9d9c8Sopenharmony_citypedef int int32_t; 512a9d9c8Sopenharmony_ci 612a9d9c8Sopenharmony_citemplate<typename T> 712a9d9c8Sopenharmony_cistruct StylePoint { 812a9d9c8Sopenharmony_ci T x; 912a9d9c8Sopenharmony_ci T y; 1012a9d9c8Sopenharmony_ci}; 1112a9d9c8Sopenharmony_ci 1212a9d9c8Sopenharmony_citemplate<typename T> 1312a9d9c8Sopenharmony_ciunion StyleFoo { 1412a9d9c8Sopenharmony_ci enum class Tag : uint8_t { 1512a9d9c8Sopenharmony_ci Foo, 1612a9d9c8Sopenharmony_ci Bar, 1712a9d9c8Sopenharmony_ci Baz, 1812a9d9c8Sopenharmony_ci Bazz, 1912a9d9c8Sopenharmony_ci }; 2012a9d9c8Sopenharmony_ci 2112a9d9c8Sopenharmony_ci struct Foo_Body { 2212a9d9c8Sopenharmony_ci Tag tag; 2312a9d9c8Sopenharmony_ci int32_t x; 2412a9d9c8Sopenharmony_ci StylePoint<T> y; 2512a9d9c8Sopenharmony_ci StylePoint<float> z; 2612a9d9c8Sopenharmony_ci }; 2712a9d9c8Sopenharmony_ci 2812a9d9c8Sopenharmony_ci struct Bar_Body { 2912a9d9c8Sopenharmony_ci Tag tag; 3012a9d9c8Sopenharmony_ci T _0; 3112a9d9c8Sopenharmony_ci }; 3212a9d9c8Sopenharmony_ci 3312a9d9c8Sopenharmony_ci struct Baz_Body { 3412a9d9c8Sopenharmony_ci Tag tag; 3512a9d9c8Sopenharmony_ci StylePoint<T> _0; 3612a9d9c8Sopenharmony_ci }; 3712a9d9c8Sopenharmony_ci 3812a9d9c8Sopenharmony_ci struct { 3912a9d9c8Sopenharmony_ci Tag tag; 4012a9d9c8Sopenharmony_ci }; 4112a9d9c8Sopenharmony_ci Foo_Body foo; 4212a9d9c8Sopenharmony_ci Bar_Body bar; 4312a9d9c8Sopenharmony_ci Baz_Body baz; 4412a9d9c8Sopenharmony_ci}; 4512a9d9c8Sopenharmony_ci 4612a9d9c8Sopenharmony_citemplate<typename T> 4712a9d9c8Sopenharmony_cistruct StyleBar { 4812a9d9c8Sopenharmony_ci enum class Tag { 4912a9d9c8Sopenharmony_ci Bar1, 5012a9d9c8Sopenharmony_ci Bar2, 5112a9d9c8Sopenharmony_ci Bar3, 5212a9d9c8Sopenharmony_ci Bar4, 5312a9d9c8Sopenharmony_ci }; 5412a9d9c8Sopenharmony_ci 5512a9d9c8Sopenharmony_ci struct StyleBar1_Body { 5612a9d9c8Sopenharmony_ci int32_t x; 5712a9d9c8Sopenharmony_ci StylePoint<T> y; 5812a9d9c8Sopenharmony_ci StylePoint<float> z; 5912a9d9c8Sopenharmony_ci }; 6012a9d9c8Sopenharmony_ci 6112a9d9c8Sopenharmony_ci struct StyleBar2_Body { 6212a9d9c8Sopenharmony_ci T _0; 6312a9d9c8Sopenharmony_ci }; 6412a9d9c8Sopenharmony_ci 6512a9d9c8Sopenharmony_ci struct StyleBar3_Body { 6612a9d9c8Sopenharmony_ci StylePoint<T> _0; 6712a9d9c8Sopenharmony_ci }; 6812a9d9c8Sopenharmony_ci 6912a9d9c8Sopenharmony_ci Tag tag; 7012a9d9c8Sopenharmony_ci union { 7112a9d9c8Sopenharmony_ci StyleBar1_Body bar1; 7212a9d9c8Sopenharmony_ci StyleBar2_Body bar2; 7312a9d9c8Sopenharmony_ci StyleBar3_Body bar3; 7412a9d9c8Sopenharmony_ci }; 7512a9d9c8Sopenharmony_ci}; 76