From bd3fe0cac583739bc0d7c4b5c8f301bb350abca0 Mon Sep 17 00:00:00 2001
From: Andy Belle-Isle <drumsetmonkey@gmail.com>
Date: Fri, 30 Aug 2019 00:19:31 -0400
Subject: Renamed lib to deps so github will ignore it for language stats

---
 deps/sol2/examples/source/environment_state.cpp | 36 +++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 deps/sol2/examples/source/environment_state.cpp

(limited to 'deps/sol2/examples/source/environment_state.cpp')

diff --git a/deps/sol2/examples/source/environment_state.cpp b/deps/sol2/examples/source/environment_state.cpp
new file mode 100644
index 0000000..c876879
--- /dev/null
+++ b/deps/sol2/examples/source/environment_state.cpp
@@ -0,0 +1,36 @@
+#define SOL_ALL_SAFETIES_ON 1
+#include <sol/sol.hpp>
+
+#include <iostream>
+
+int main(int, char*[]) {
+	std::cout << "=== environment state ===" << std::endl;
+
+	sol::state lua;
+	lua.open_libraries();
+	sol::environment my_env(lua, sol::create);
+	// set value, and we need to explicitly allow for 
+	// access to "print", since a new environment hides 
+	// everything that's not defined inside of it
+	// NOTE: hiding also hides library functions (!!)
+	// BE WARNED
+	my_env["var"] = 50;
+	my_env["print"] = lua["print"];
+
+	sol::environment my_other_env(lua, sol::create, lua.globals());
+	// do not need to explicitly allow access to "print",
+	// since we used the "Set a fallback" version 
+	// of the sol::environment constructor
+	my_other_env["var"] = 443;
+
+	// output: 50
+	lua.script("print(var)", my_env);
+
+	// output: 443
+	lua.script("print(var)", my_other_env);
+
+
+	std::cout << std::endl;
+
+	return 0;
+}
-- 
cgit v1.2.3