code: func (e *EnvironmentLoader) printField(prefix string, field *structs.Field, name string, strctMap interface{}) {
  	fieldName := e.generateFieldName(prefix, name)
  
  	switch strctMap.(type) {
  	case map[string]interface{}:
  		smap := strctMap.(map[string]interface{})
  		keys := make([]string, 0, len(smap))
  		for key := range smap {
  			keys = append(keys, key)
  		}
  		sort.Strings(keys)
  		for _, key := range keys {
  			field := field.Field(key)
  			e.printField(fieldName, field, key, smap[key])
  		}
  	default:
  		fmt.Println("  ", fieldName)
  	}
  }
docs: // printField prints the field of the config struct for the flag.Usage