diff options
author | terminaldweller <devi@terminaldweller.com> | 2024-06-01 00:01:24 +0000 |
---|---|---|
committer | terminaldweller <devi@terminaldweller.com> | 2024-06-01 00:01:24 +0000 |
commit | 6931cf779ecdfd42dcb30d6bf5a65065f0f4b84b (patch) | |
tree | 15051d6f222ebfdfa2e23dbe1a659cbb719c0182 /plugins.go | |
parent | added gopher-lua to the thank you list (diff) | |
download | milla-6931cf779ecdfd42dcb30d6bf5a65065f0f4b84b.tar.gz milla-6931cf779ecdfd42dcb30d6bf5a65065f0f4b84b.zip |
tables are working now
Diffstat (limited to 'plugins.go')
-rw-r--r-- | plugins.go | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -27,16 +27,15 @@ func registerStrucAsLuaMetaTable[T any]( ), ) - var zero [0]T + var dummyType T + tableMethods := luaTableGenFactory(reflect.TypeOf(dummyType), checkStruct) luaState.SetField( metaTable, "__index", luaState.SetFuncs( luaState.NewTable(), - luaTableGenFactory(reflect.TypeOf(zero), - checkStruct, - ), + tableMethods, ), ) } @@ -55,6 +54,7 @@ func newStructFunctionFactory[T any](structType T, metaTableName string) func(*l func checkStruct[T any](luaState *lua.LState) *T { userData := luaState.CheckUserData(1) + if v, ok := userData.Value.(*T); ok { return v } @@ -143,8 +143,8 @@ func luaTableGenFactory[T any]( } func RegisterCustomLuaTypes(luaState *lua.LState) { - registerStrucAsLuaMetaTable(luaState, checkStruct, TomlConfig{}, "toml_config") - registerStrucAsLuaMetaTable(luaState, checkStruct, CustomCommand{}, "custom_command") + registerStrucAsLuaMetaTable[TomlConfig](luaState, checkStruct, TomlConfig{}, "toml_config") + registerStrucAsLuaMetaTable[CustomCommand](luaState, checkStruct, CustomCommand{}, "custom_command") } func returnAllPlugins(pluginPath string) ([]string, error) { |