aboutsummaryrefslogtreecommitdiffstats
path: root/deps/sol2/examples/source/docs/simple_structs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'deps/sol2/examples/source/docs/simple_structs.cpp')
-rw-r--r--deps/sol2/examples/source/docs/simple_structs.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/deps/sol2/examples/source/docs/simple_structs.cpp b/deps/sol2/examples/source/docs/simple_structs.cpp
new file mode 100644
index 0000000..9b0fc27
--- /dev/null
+++ b/deps/sol2/examples/source/docs/simple_structs.cpp
@@ -0,0 +1,32 @@
+#define SOL_ALL_SAFETIES_ON 1
+
+#include <sol/sol.hpp>
+#include <assert.hpp>
+
+struct vars {
+ int boop = 0;
+
+ int bop () const {
+ return boop + 1;
+ }
+};
+
+int main() {
+ sol::state lua;
+ lua.new_usertype<vars>("vars",
+ "boop", &vars::boop,
+ "bop", &vars::bop);
+ lua.script("beep = vars.new()\n"
+ "beep.boop = 1\n"
+ "bopvalue = beep:bop()");
+
+ vars& beep = lua["beep"];
+ int bopvalue = lua["bopvalue"];
+
+ c_assert(beep.boop == 1);
+ c_assert(lua.get<vars>("beep").boop == 1);
+ c_assert(beep.bop() == 2);
+ c_assert(bopvalue == 2);
+
+ return 0;
+}