func (m CopyableMap) DeepCopy() map[string]interface{} {
	result := map[string]interface{}{}

	for k, v := range m {
		if mapvalue, isMap := v.(map[string]interface{}); isMap {
			result[k] = CopyableMap(mapvalue).DeepCopy()
			continue
		}

		if slicevalue, isSlice := v.([]interface{}); isSlice {
			result[k] = CopyableSlice(slicevalue).DeepCopy()
			continue
		}

		result[k] = v
	}

	return result
}
// DeepCopy will create a deep copy of this map.
// The depth of this copy is all inclusive.
// Both maps and slices will be considered when making the copy.
DeepCopy will create a deep copy of this map.
The depth of this copy is all inclusive.
Both maps and slices will be considered when making the copy.
// DeepCopy will create a deep copy of this map . // The depth of this copy is all inclusive . // Both maps and slices will be considered when making the copy .
func (m CopyableMap) DeepCopy() map[string]interface{} {
	result := map[string]interface{}{}
	for k, v := range m {
		if mapvalue, isMap := v.(map[string]interface{}); isMap {
			result[k] = CopyableMap(mapvalue).DeepCopy()
			continue
		}
		if slicevalue, isSlice := v.([]interface{}); isSlice {
			result[k] = CopyableSlice(slicevalue).DeepCopy()
			continue
		}
		result[k] = v
	}
	return result
}
func ( m CopyableMap ) DeepCopy ( ) map [ string ] interface { } { result := map [ string ] interface { } { } for k , v := range m { if mapvalue , isMap := v . ( map [ string ] interface { } ) ; isMap { result [ k ] = CopyableMap ( mapvalue ) . DeepCopy ( ) continue } if slicevalue , isSlice := v . ( [ ] interface { } ) ; isSlice { result [ k ] = CopyableSlice ( slicevalue ) . DeepCopy ( ) continue } result [ k ] = v } return result }
DeepCopy will create a deep copy of this map.
DeepCopy will create a deep copy of this map .