github.com/influx6/npkg@v0.8.8/nstorage/nmap/shared.go (about)

     1  package nmap
     2  
     3  // CopyExpiringBytesMap returns a new copy of a giving string map.
     4  func CopyExpiringBytesMap(src map[string]ExpiringValue) map[string]ExpiringValue {
     5  	var dest = make(map[string]ExpiringValue, len(src))
     6  	for key, value := range src {
     7  		if value.Expired() {
     8  			continue
     9  		}
    10  		dest[key] = value
    11  	}
    12  	return dest
    13  }
    14  
    15  // CopyStringBytesMap returns a new copy of a giving string map.
    16  func CopyStringBytesMap(src map[string][]byte) map[string][]byte {
    17  	var dest = make(map[string][]byte, len(src))
    18  	for key, value := range src {
    19  		dest[key] = copyBytes(value)
    20  	}
    21  	return dest
    22  }
    23  
    24  // CopyStringMap returns a new copy of a giving string map.
    25  func CopyStringMap(src map[string]string) map[string]string {
    26  	var dest = make(map[string]string, len(src))
    27  	for key, value := range src {
    28  		dest[key] = value
    29  	}
    30  	return dest
    31  }
    32  
    33  // CopyStringKeyMap returns a new copy of a giving string keyed map.
    34  func CopyStringKeyMap(src map[string]interface{}) map[string]interface{} {
    35  	var dest = make(map[string]interface{}, len(src))
    36  	for key, value := range src {
    37  		dest[key] = value
    38  	}
    39  	return dest
    40  }
    41  
    42  // CopyInterfaceKeyMap returns a new copy of a giving interface keyed map.
    43  func CopyInterfaceKeyMap(src map[interface{}]interface{}) map[interface{}]interface{} {
    44  	var dest = make(map[interface{}]interface{}, len(src))
    45  	for key, value := range src {
    46  		dest[key] = value
    47  	}
    48  	return dest
    49  }
    50  
    51  // copyBytes returns a new copy of giving byte slice.
    52  func copyBytes(bu []byte) []byte {
    53  	var cu = make([]byte, len(bu))
    54  	copy(cu, bu)
    55  	return cu
    56  }