summaryrefslogtreecommitdiff
path: root/tests/headers/transform-op.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/headers/transform-op.hpp')
-rw-r--r--tests/headers/transform-op.hpp75
1 files changed, 75 insertions, 0 deletions
diff --git a/tests/headers/transform-op.hpp b/tests/headers/transform-op.hpp
new file mode 100644
index 00000000..aa6118eb
--- /dev/null
+++ b/tests/headers/transform-op.hpp
@@ -0,0 +1,75 @@
+// bindgen-flags: --rust-target 1.0 -- -std=c++11
+
+typedef unsigned char uint8_t;
+typedef int int32_t;
+
+template<typename T>
+struct StylePoint {
+ T x;
+ T y;
+};
+
+template<typename T>
+union StyleFoo {
+ enum class Tag : uint8_t {
+ Foo,
+ Bar,
+ Baz,
+ Bazz,
+ };
+
+ struct Foo_Body {
+ Tag tag;
+ int32_t x;
+ StylePoint<T> y;
+ StylePoint<float> z;
+ };
+
+ struct Bar_Body {
+ Tag tag;
+ T _0;
+ };
+
+ struct Baz_Body {
+ Tag tag;
+ StylePoint<T> _0;
+ };
+
+ struct {
+ Tag tag;
+ };
+ Foo_Body foo;
+ Bar_Body bar;
+ Baz_Body baz;
+};
+
+template<typename T>
+struct StyleBar {
+ enum class Tag {
+ Bar1,
+ Bar2,
+ Bar3,
+ Bar4,
+ };
+
+ struct StyleBar1_Body {
+ int32_t x;
+ StylePoint<T> y;
+ StylePoint<float> z;
+ };
+
+ struct StyleBar2_Body {
+ T _0;
+ };
+
+ struct StyleBar3_Body {
+ StylePoint<T> _0;
+ };
+
+ Tag tag;
+ union {
+ StyleBar1_Body bar1;
+ StyleBar2_Body bar2;
+ StyleBar3_Body bar3;
+ };
+};