github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/testing/attrs.go (about)

     1  // Copyright 2013 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package testing
     5  
     6  // Attrs is a convenience type for messing
     7  // around with configuration attributes.
     8  type Attrs map[string]interface{}
     9  
    10  func (a Attrs) Merge(with Attrs) Attrs {
    11  	new := make(Attrs)
    12  	for attr, val := range a {
    13  		new[attr] = val
    14  	}
    15  	for attr, val := range with {
    16  		new[attr] = val
    17  	}
    18  	return new
    19  }
    20  
    21  func (a Attrs) Delete(attrNames ...string) Attrs {
    22  	new := make(Attrs)
    23  	for attr, val := range a {
    24  		new[attr] = val
    25  	}
    26  	for _, attr := range attrNames {
    27  		delete(new, attr)
    28  	}
    29  	return new
    30  }