int newindex(lua::state& L, lua::parameters& P) { const char* c = L.tostring(2); if(!c) return 0; std::string c2(c); if(!mappings.count(c2)) return 0; auto& x = mappings[c2]; x.rw(L, x.addr, true); return 0; }
int index(lua::state& L, lua::parameters& P) { const char* c = L.tostring(2); if(!c) { L.pushnil(); return 1; } std::string c2(c); if(!mappings.count(c2)) { L.pushnil(); return 1; } auto& x = mappings[c2]; x.rw(L, x.addr, false); return 1; }