LuaUserData.cs 519 B

12345678910111213141516171819202122
  1. namespace Lua;
  2. internal sealed class LuaUserData : ILuaUserData
  3. {
  4. public LuaTable? Metatable { get; set; }
  5. readonly LuaValue[] userValues = new LuaValue[1];
  6. public Span<LuaValue> UserValues => userValues;
  7. public LuaUserData(LuaValue value, LuaTable? metatable)
  8. {
  9. userValues[0] = value;
  10. Metatable = metatable;
  11. }
  12. }
  13. public interface ILuaUserData
  14. {
  15. LuaTable? Metatable { get; set; }
  16. //We use span for compatibility with lua5.4.
  17. Span<LuaValue> UserValues => default;
  18. }