int luabridge::metaevent_equal< ObjectWrap<const uint64 &> >(lua_State* L) { typedef ObjectWrap< const uint64> typ; typ & obj1 = *static_cast<typ*>(checkclass(L, 1, classname<typ>::name())); typ & obj2 = *static_cast<typ*>(checkclass(L, 2, classname<typ>::name())); if(obj1 == obj2) lua_pushboolean(L, 1); else lua_pushboolean(L, 0); return 1; }
int luabridge::metaevent_equal< ObjectWrap<uint64> >(lua_State* L) { typedef ObjectWrap<uint64> typ; uint64 obj1, obj2; obj1 = static_cast<typ*>(checkclass(L, 1, classname<typ>::name()))->value_; obj2 = static_cast<typ*>(checkclass(L, 2, classname<typ>::name()))->value_; if(obj1 == obj2) lua_pushboolean(L, 1); else lua_pushboolean(L, 0); return 1; }
int luabridge::metaevent_tostring<const uint64 &>(lua_State* L) { typedef ObjectWrap<const uint64> typ; uint64 guid = static_cast<typ*>(checkclass(L, 1, classname<typ>::name()))->value_; std::ostringstream stream; stream << std::hex << guid; lua_pushstring(L, stream.str().c_str()); return 1; }
static const T* get (lua_State *L, int index) { std::string constname = std::string("const ") + classname<T>::name(); return *(const T**)checkclass(L, index, constname.c_str()); }
static T * get (lua_State *L, int index) { return *(T**)checkclass(L, index, classname<T>::name()); }
static T get(lua_State * L, int index) { return static_cast< ObjectWrap<T>*>( checkclass(L, index, classname<ObjectWrap<T> >::name() ) )->value_; }