Index: trunk/src/lua/lua_state.cc
===================================================================
--- trunk/src/lua/lua_state.cc	(revision 288)
+++ trunk/src/lua/lua_state.cc	(revision 296)
@@ -209,4 +209,37 @@
 	return result;
 }
+
+bool nv::lua::table_guard::is_table( const std::string& element )
+{
+	lua_getfield( m_state, -1, element.c_str() );
+	bool result = lua_type( m_state, -1 ) == LUA_TTABLE;
+	lua_pop( m_state, 1 );
+	return result;
+}
+
+bool nv::lua::table_guard::is_number( const std::string& element )
+{
+	lua_getfield( m_state, -1, element.c_str() );
+	bool result = lua_type( m_state, -1 ) == LUA_TNUMBER;
+	lua_pop( m_state, 1 );
+	return result;
+}
+
+bool nv::lua::table_guard::is_boolean( const std::string& element )
+{
+	lua_getfield( m_state, -1, element.c_str() );
+	bool result = lua_type( m_state, -1 ) == LUA_TBOOLEAN;
+	lua_pop( m_state, 1 );
+	return result;
+}
+
+bool nv::lua::table_guard::is_string( const std::string& element )
+{
+	lua_getfield( m_state, -1, element.c_str() );
+	bool result = lua_type( m_state, -1 ) == LUA_TSTRING;
+	lua_pop( m_state, 1 );
+	return result;
+}
+
 
 // state
