func (c Config) String() string {
	// sort 'provider' to the front and keep the keys stable.
	var keys []string
	for k := range c {
		if k != "provider" {
			keys = append(keys, k)
		}
	}
	sort.Strings(keys)
	keys = append([]string{"provider"}, keys...)

	quote := func(s string) string {
		if strings.ContainsAny(s, ` "\`) {
			return strconv.Quote(s)
		}
		return s
	}

	var vals []string
	for _, k := range keys {
		v := c[k]
		if v == "" {
			continue
		}
		vals = append(vals, quote(k)+"="+quote(v))
	}
	return strings.Join(vals, " ")
}
func (c Config) String() string {
	
	var keys []string
	for k := range c {
		if k != "provider" {
			keys = append(keys, k)
		}
	}
	sort.Strings(keys)
	keys = append([]string{"provider"}, keys...)

	quote := func(s string) string {
		if strings.ContainsAny(s, ` "\`) {
			return strconv.Quote(s)
		}
		return s
	}

	var vals []string
	for _, k := range keys {
		v := c[k]
		if v == "" {
			continue
		}
		vals = append(vals, quote(k)+"="+quote(v))
	}
	return strings.Join(vals, " ")
}
func ( c Config ) String ( ) string { // sort 'provider' to the front and keep the keys stable. var keys [ ] string for k := range c { if k != " " { keys = append ( keys , k ) } } sort . Strings ( keys ) keys = append ( [ ] string { " " } , keys ... ) quote := func ( s string ) string { if strings . ContainsAny ( s , ` "\` ) { return strconv . Quote ( s ) } return s } var vals [ ] string for _ , k := range keys { v := c [ k ] if v == " " { continue } vals = append ( vals , quote ( k ) + " " + quote ( v ) ) } return strings . Join ( vals , " " ) }
// String formats a config map into the "key=val key=val ..."
// understood by Parse. The order of the keys is stable.
String formats a config map into the key = val key = val ... understood by Parse . The order of the keys is stable .