Я хотел бы иметь таблицу однократной записи в Lua (в частности, LuaJIT 2.0.3), чтобы:
local tbl = write_once_tbl()
tbl["a"] = 'foo'
tbl["b"] = 'bar'
tbl["a"] = 'baz' -- asserts false
В идеале это могло бы функционировать как обычная таблица (работают функции pairs() и ipairs()).
__newindex в основном противоположен тому, что я хотел бы легко реализовать, и я не знаю каких-либо методов, позволяющих заставить шаблон прокси-таблицы работать с парами () и ipairs ().