aboutsummaryrefslogtreecommitdiff
path: root/ProjectBrussel/CodegenCompiler/test/examples
diff options
context:
space:
mode:
Diffstat (limited to 'ProjectBrussel/CodegenCompiler/test/examples')
-rw-r--r--ProjectBrussel/CodegenCompiler/test/examples/TestClass.hpp.txt38
-rw-r--r--ProjectBrussel/CodegenCompiler/test/examples/TestEnum.hpp.txt44
2 files changed, 82 insertions, 0 deletions
diff --git a/ProjectBrussel/CodegenCompiler/test/examples/TestClass.hpp.txt b/ProjectBrussel/CodegenCompiler/test/examples/TestClass.hpp.txt
new file mode 100644
index 0000000..3eed8db
--- /dev/null
+++ b/ProjectBrussel/CodegenCompiler/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/ProjectBrussel/CodegenCompiler/test/examples/TestEnum.hpp.txt b/ProjectBrussel/CodegenCompiler/test/examples/TestEnum.hpp.txt
new file mode 100644
index 0000000..30c36c0
--- /dev/null
+++ b/ProjectBrussel/CodegenCompiler/test/examples/TestEnum.hpp.txt
@@ -0,0 +1,44 @@
+enum MyEnum {
+ EnumElement1,
+ EnumElement2,
+ EnumElement3,
+};
+BRUSSEL_ENUM(MyEnum, ToString FromString);
+
+// Let's also test enum class
+enum class CountedEnumAll {
+ CEA_Foo,
+ CEA_Bar,
+ CEA_COUNT,
+};
+BRUSSEL_ENUM(CountedEnumAll, ToString FromString);
+
+enum CountedEnum {
+ CE_Foo,
+ CE_Bar,
+ CE_FooBar,
+ CE_COUNT,
+};
+BRUSSEL_ENUM(CountedEnum, ToString FromString ExcludeHeuristics);
+
+namespace MyNamespace {
+enum class MyNamespacedEnum {
+ MNE_Foo,
+ MNE_Bar,
+};
+BRUSSEL_ENUM(MyNamespacedEnum, ToString FromString ExcludeHeuristics);
+
+namespace details {
+ enum MyNamespacedEnum {
+ MNE_Foo,
+ MNE_Bar,
+ };
+ BRUSSEL_ENUM(MyNamespacedEnum, ToString FromString ExcludeHeuristics);
+}
+}
+
+namespace foo::details {
+enum Enum {
+};
+BRUSSEL_ENUM(Enum, ToString FromString ExcludeHeuristics);
+}