diff --git a/metatable.go b/metatable.go index 8bf25a8..260cf6e 100644 --- a/metatable.go +++ b/metatable.go @@ -149,6 +149,17 @@ func (this *NameMetaTable[T]) Load() { this.RawMetaTable.Load() } +func ReadMetaTableField[T string | int | int32 | int64 | float32 | float64]( + fieldPtr *T, fieldName string, flags *uint64, flagIdx int, + kv map[string]interface{}) { + if val, ok := kv[fieldName]; ok { + if !q5.DuckToSimple(val, fieldPtr) { + panic("ReadMetaTableField error") + } + //*flags = *flags & flagIdx + } +} + func LoadMetaTable(table interface{}) { ele := reflect.ValueOf(table).Elem() for i := 0; i < ele.NumField(); i++ {