config/env.go
func (c *EnvConfig) Merge(o *EnvConfig) *EnvConfig {
	if c == nil {
		if o == nil {
			return nil
		}
		return o.Copy()
	}

	if o == nil {
		return c.Copy()
	}

	r := c.Copy()

	if o.Blacklist != nil {
		r.Blacklist = append(r.Blacklist, o.Blacklist...)
	}

	if o.Custom != nil {
		r.Custom = append(r.Custom, o.Custom...)
	}

	if o.Pristine != nil {
		r.Pristine = o.Pristine
	}

	if o.Whitelist != nil {
		r.Whitelist = append(r.Whitelist, o.Whitelist...)
	}

	return r
}
func (c *EnvConfig) Merge(o *EnvConfig) *EnvConfig {
	if c == nil {
		if o == nil {
			return nil
		}
		return o.Copy()
	}

	if o == nil {
		return c.Copy()
	}

	r := c.Copy()

	if o.Blacklist != nil {
		r.Blacklist = append(r.Blacklist, o.Blacklist...)
	}

	if o.Custom != nil {
		r.Custom = append(r.Custom, o.Custom...)
	}

	if o.Pristine != nil {
		r.Pristine = o.Pristine
	}

	if o.Whitelist != nil {
		r.Whitelist = append(r.Whitelist, o.Whitelist...)
	}

	return r
}
func ( c * EnvConfig ) Merge ( o * EnvConfig ) * EnvConfig { if c == nil { if o == nil { return nil } return o . Copy ( ) } if o == nil { return c . Copy ( ) } r := c . Copy ( ) if o . Blacklist != nil { r . Blacklist = append ( r . Blacklist , o . Blacklist ... ) } if o . Custom != nil { r . Custom = append ( r . Custom , o . Custom ... ) } if o . Pristine != nil { r . Pristine = o . Pristine } if o . Whitelist != nil { r . Whitelist = append ( r . Whitelist , o . Whitelist ... ) } return r }
// Merge combines all values in this configuration with the values in the other
// configuration, with values in the other configuration taking precedence.
// Maps and slices are merged, most other values are overwritten. Complex
// structs define their own merge functionality.
Merge combines all values in this configuration with the values in the other configuration with values in the other configuration taking precedence . Maps and slices are merged most other values are overwritten . Complex structs define their own merge functionality .