@@ -29,16 +29,44 @@ namespace lua
2929 // The return value must be the net amount of items pushed to the stack, which should
3030 // be 1 for most types (e.g. Push<int>) but may be any number for special cases
3131 // like tuples, in order to allow returning multiple values from a function
32-
33- int Push (lua_State* L, int val);
34- int Push (lua_State* L, const std::string& val);
35- int Push (lua_State* L, bool val);
36- int Push (lua_State* L, std::nullptr_t );
37- int Push (lua_State* L, float val);
38- int Push (lua_State* L, double val);
39- int Push (lua_State* L, unsigned int val);
40- int Push (lua_State* L, unsigned short val);
32+ inline int Push (lua_State* L, int value)
33+ {
34+ lua_pushnumber (L, value);
35+ return 1 ;
36+ }
37+ inline int Push (lua_State* L, unsigned int value)
38+ {
39+ lua_pushnumber (L, value);
40+ return 1 ;
41+ }
42+ inline int Push (lua_State* L, float value)
43+ {
44+ lua_pushnumber (L, value);
45+ return 1 ;
46+ }
47+ inline int Push (lua_State* L, double value)
48+ {
49+ lua_pushnumber (L, value);
50+ return 1 ;
51+ }
4152
53+ inline int Push (lua_State* L, bool value)
54+ {
55+ lua_pushboolean (L, value);
56+ return 1 ;
57+ }
58+
59+ inline int Push (lua_State* L, nullptr_t )
60+ {
61+ lua_pushnil (L);
62+ return 1 ;
63+ }
64+
65+ inline int Push (lua_State* L, const std::string& value)
66+ {
67+ lua_pushlstring (L, value.data (), value.length ());
68+ return 1 ;
69+ }
4270
4371 template <typename ... Ts>
4472 int Push (lua_State* L, const std::variant<Ts...>&& val)
0 commit comments