ScriptContext pushArgs cleanup
This commit is contained in:
parent
f41fc40995
commit
cc6a8f553e
1 changed files with 25 additions and 25 deletions
|
@ -36,6 +36,7 @@ extern "C" {
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <type_traits>
|
||||||
#include <unordered_set>
|
#include <unordered_set>
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,37 +55,36 @@ private:
|
||||||
|
|
||||||
void load(const std::string &script);
|
void load(const std::string &script);
|
||||||
|
|
||||||
|
|
||||||
|
void pushArg(std::nullptr_t __attribute__((unused)) v) {
|
||||||
|
lua_pushnil(L);
|
||||||
|
}
|
||||||
|
|
||||||
|
void pushArg(const std::string &v) {
|
||||||
|
lua_pushstring(L, v.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, class = typename std::enable_if<std::is_arithmetic<T>::value>::type>
|
||||||
|
void pushArg(T v) {
|
||||||
|
lua_pushnumber(L, v);
|
||||||
|
}
|
||||||
|
|
||||||
|
void pushArg(bool v) {
|
||||||
|
lua_pushboolean(L, v);
|
||||||
|
}
|
||||||
|
|
||||||
|
void pushArg(Model::ScriptValue &v) {
|
||||||
|
v.push(L);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
size_t pushArgs() {
|
size_t pushArgs() {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename... Args>
|
|
||||||
size_t pushArgs(std::nullptr_t __attribute__((unused)) v, Args ...args) {
|
|
||||||
lua_pushnil(L);
|
|
||||||
return pushArgs(args...) + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename... Args>
|
|
||||||
size_t pushArgs(const std::string &v, Args ...args) {
|
|
||||||
lua_pushstring(L, v.c_str());
|
|
||||||
return pushArgs(args...) + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename T, typename... Args>
|
template<typename T, typename... Args>
|
||||||
size_t pushArgs(T v, Args ...args) {
|
size_t pushArgs(T v, Args ...args) {
|
||||||
lua_pushnumber(L, v);
|
pushArg(v);
|
||||||
return pushArgs(args...) + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename... Args>
|
|
||||||
size_t pushArgs(bool v, Args ...args) {
|
|
||||||
lua_pushboolean(L, v);
|
|
||||||
return pushArgs(args...) + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename... Args>
|
|
||||||
size_t pushArgs(Model::ScriptValue &v, Args ...args) {
|
|
||||||
v.push(L);
|
|
||||||
return pushArgs(args...) + 1;
|
return pushArgs(args...) + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in a new issue