mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-10-08 11:57:51 +00:00
#33 don't need reflect for get valid field
This commit is contained in:
parent
0f45d27028
commit
0a19e9f413
1 changed files with 0 additions and 25 deletions
25
cmd/root.go
25
cmd/root.go
|
|
@ -22,7 +22,6 @@ import (
|
|||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/pflag"
|
||||
"github.com/spf13/viper"
|
||||
"reflect"
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
@ -163,27 +162,3 @@ func setAllConfig(v *viper.Viper, flags *pflag.FlagSet, envPrefix string) error
|
|||
})
|
||||
return flagErr
|
||||
}
|
||||
|
||||
func GetValidTags(v interface{}) map[string]bool {
|
||||
validTag := make(map[string]bool)
|
||||
conf := reflect.ValueOf(v)
|
||||
|
||||
for i := 0; i < conf.Type().NumField(); i++ {
|
||||
field := conf.Field(i)
|
||||
if field.Kind() == reflect.Struct {
|
||||
tag := conf.Type().Field(i).Tag.Get("toml")
|
||||
tagString := strings.Split(tag, ",")
|
||||
val := reflect.ValueOf(field.Interface())
|
||||
for j := 0; j < val.Type().NumField(); j++ {
|
||||
subTag := val.Type().Field(j).Tag.Get("toml")
|
||||
subTagString := strings.Split(subTag, ",")
|
||||
validTag[fmt.Sprintf("%s.%s", tagString[0], subTagString[0])] = true
|
||||
}
|
||||
} else {
|
||||
tomlTag := conf.Type().Field(i).Tag.Get("toml")
|
||||
s := strings.Split(tomlTag, ",")
|
||||
validTag[s[0]] = true
|
||||
}
|
||||
}
|
||||
return validTag
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue