From 0a19e9f413a6b715b5864453f17586be849f47fb Mon Sep 17 00:00:00 2001 From: Linh Vo Date: Tue, 23 May 2017 14:44:16 -0500 Subject: [PATCH] #33 don't need reflect for get valid field --- cmd/root.go | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/cmd/root.go b/cmd/root.go index caea25992..e506f2fed 100644 --- a/cmd/root.go +++ b/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 -}