aboutsummaryrefslogtreecommitdiff
path: root/src/brussel.codegen.comp/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/brussel.codegen.comp/test')
-rw-r--r--src/brussel.codegen.comp/test/examples/TestClass.hpp.txt38
-rw-r--r--src/brussel.codegen.comp/test/examples/TestEnum.hpp.txt44
2 files changed, 82 insertions, 0 deletions
diff --git a/src/brussel.codegen.comp/test/examples/TestClass.hpp.txt b/src/brussel.codegen.comp/test/examples/TestClass.hpp.txt
new file mode 100644
index 0000000..3eed8db
--- /dev/null
+++ b/src/brussel.codegen.comp/test/examples/TestClass.hpp.txt
@@ -0,0 +1,38 @@
+#include <TestClass.gph.inl>
+
+class MyClass {
+ BRUSSEL_CLASS()
+
+public:
+ BRUSSEL_PROPERTY(GETTER GetName, SETTER SetName)
+ std::string name;
+
+ BRUSSEL_PROPERTY(GETTER auto, SETTER auto)
+ std::string tag;
+
+ BRUSSEL_PROPERTY()
+ int foo;
+
+ BRUSSEL_PROPERTY()
+ int bar;
+
+public:
+ const std::string& GetName() const { return name; }
+ void SetName(std::string name) { this->name = std::move(name); }
+};
+
+namespace MyNamespace {
+struct Base {
+ BRUSSEL_CLASS(InheritanceHiearchy)
+};
+
+struct DerviedFoo : public Base {
+ BRUSSEL_CLASS()
+};
+
+struct DerviedBar : Base {
+ BRUSSEL_CLASS()
+};
+}
+
+#include <TestClass.gh.inl>
diff --git a/src/brussel.codegen.comp/test/examples/TestEnum.hpp.txt b/src/brussel.codegen.comp/test/examples/TestEnum.hpp.txt
new file mode 100644
index 0000000..132bac0
--- /dev/null
+++ b/src/brussel.codegen.comp/test/examples/TestEnum.hpp.txt
@@ -0,0 +1,44 @@
+enum MyEnum {
+ BRUSSEL_ENUM(ToString, FromString)
+ EnumElement1,
+ EnumElement2,
+ EnumElement3,
+};
+
+// Let's also test enum class
+enum class CountedEnumAll {
+ BRUSSEL_ENUM(ToString, FromString)
+ CEA_Foo,
+ CEA_Bar,
+ CEA_COUNT,
+};
+
+enum CountedEnum : unsigned short int {
+ BRUSSEL_ENUM(ToString, FromString, RemovePrefix CE_, AddPrefix CustomPrefix, ExcludeHeuristics)
+ CE_Foo,
+ CE_Bar,
+ CE_FooBar,
+ CE_COUNT,
+};
+
+namespace MyNamespace {
+ enum class MyNamespacedEnum {
+ BRUSSEL_ENUM(ToString, FromString, ExcludeHeuristics)
+ MNE_Foo,
+ MNE_Bar,
+ };
+
+ namespace details {
+ enum MyNamespacedEnum {
+ BRUSSEL_ENUM(ToString, FromString, ExcludeHeuristics)
+ MNE_Foo,
+ MNE_Bar,
+ };
+ }
+}
+
+namespace foo::details {
+ enum Enum {
+ BRUSSEL_ENUM(ToString, FromString, ExcludeHeuristics)
+ };
+}