[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Best way to have table-like fields on userdata
- From: Brian McCallister <brianm@...>
- Date: Tue, 28 Nov 2006 10:28:17 -0800
What is the best way to support something akin to table like fields
on userdata, so you can have:
foo.status = 201
foo:puts("hello world")
where foo is a userdata?
Using the metatable for adding methods as described in PiL works well
for adding methods to it, but providing an __index on the metatable
causes __index to be invoked rather than looking up the value in the
metatable. The only ~obvious way I see is to maintain a hash of
values in the userdata and do all lookups there, but it would be
handy to be able to let Lua do that for me. This could be done with
an upvalue on __index, but doing the __index against an upvalue seems
like a hack.
Anyone have a good solution to this?
Thanks!
-Brian