code: func (f *featureGate) Set(value string) error {
  	m := make(map[string]bool)
  	for _, s := range strings.Split(value, ",") {
  		if len(s) == 0 {
  			continue
  		}
  		arr := strings.SplitN(s, "=", 2)
  		k := strings.TrimSpace(arr[0])
  		if len(arr) != 2 {
  			return fmt.Errorf("missing bool value for %s", k)
  		}
  		v := strings.TrimSpace(arr[1])
  		boolValue, err := strconv.ParseBool(v)
  		if err != nil {
  			return fmt.Errorf("invalid value of %s=%s, err: %v", k, v, err)
  		}
  		m[k] = boolValue
  	}
  	return f.SetFromMap(m)
  }
docs: // Set parses a string of the form "key1=value1,key2=value2,..." into a
  // map[string]bool of known keys or returns an error.