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 }