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

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

	r := c.Copy()

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

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

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

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

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

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

	r := c.Copy()

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

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

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

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

	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.