summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/sol2/examples/config.cpp
blob: d899de385caefeab518d737c23b84e181fb067e6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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;
}