summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/sol2/examples/config.cpp
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/sol2/examples/config.cpp')
-rw-r--r--3rdparty/sol2/examples/config.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/3rdparty/sol2/examples/config.cpp b/3rdparty/sol2/examples/config.cpp
new file mode 100644
index 00000000000..d899de385ca
--- /dev/null
+++ b/3rdparty/sol2/examples/config.cpp
@@ -0,0 +1,39 @@
+#include <sol.hpp>
+#include <string>
+#include <iostream>
+
+// shows how to load basic data to a struct
+
+struct config {
+ std::string name;
+ int width;
+ int height;
+
+ void print() {
+ std::cout << "Name: " << name << '\n'
+ << "Width: " << width << '\n'
+ << "Height: " << height << '\n';
+ }
+};
+
+int main() {
+ sol::state lua;
+ config screen;
+ // To use the file, uncomment here and make sure it is in local dir
+ //lua.script_file("config.lua");
+ lua.script(R"(
+name = "Asus"
+width = 1920
+height = 1080
+)");
+ screen.name = lua.get<std::string>("name");
+ screen.width = lua.get<int>("width");
+ screen.height = lua.get<int>("height");
+ assert(screen.name == "Asus");
+ assert(screen.width == 1920);
+ assert(screen.height == 1080);
+
+ std::cout << "=== config example ===" << std::endl;
+ screen.print();
+ std::cout << std::endl;
+}