diff options
Diffstat (limited to 'src/3rdparty/luax/luax.h')
-rw-r--r-- | src/3rdparty/luax/luax.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/3rdparty/luax/luax.h b/src/3rdparty/luax/luax.h index 6ec4dc9..56023b3 100644 --- a/src/3rdparty/luax/luax.h +++ b/src/3rdparty/luax/luax.h @@ -276,6 +276,25 @@ inline int luax_isfloat(lua_State* L, int i) return 0; return lua_tonumber(L, i) != lua_tointeger(L, i); } + +#define luax_isnumberstrict(L, i) (lua_type(L, i) == LUA_TNUMBER) +#define luax_isstringstrict(L, i) (lua_type(L, i) == LUA_TSTRING) +#define luax_isbooleanstrict(L, i) (lua_type(L, i) == LUA_TBOOLEAN) +#define luax_istablestrict(L, i) (lua_type(L, i) == LUA_TTABLE) +#define luax_isnilstrict(L, i) (lua_type(L, i) == LUA_TNIL) +inline int luax_isintegerstrict(lua_State* L, int i) +{ + if (!luax_isnumberstrict(L, i)) + return 0; + return lua_tonumber(L, i) == lua_tointeger(L, i); +} +inline int luax_isfloatstrict(lua_State* L, int i) +{ + if (!luax_isnumberstrict(L, i)) + return 0; + return lua_tonumber(L, i) != lua_tointeger(L, i); +} + /** * To userdata. */ |