2022-01-06 06:40:23 -05:00
|
|
|
package helpers
|
|
|
|
|
|
|
|
|
|
import (
|
2023-04-23 11:43:50 +00:00
|
|
|
"net/netip"
|
2022-01-06 06:40:23 -05:00
|
|
|
|
2023-05-20 20:37:23 +00:00
|
|
|
"golang.org/x/exp/slices"
|
2022-01-06 06:40:23 -05:00
|
|
|
)
|
|
|
|
|
|
2023-05-20 20:37:23 +00:00
|
|
|
func CopyPointer[T any](original *T) (copied *T) {
|
2022-01-06 06:40:23 -05:00
|
|
|
if original == nil {
|
|
|
|
|
return nil
|
|
|
|
|
}
|
2023-05-20 20:37:23 +00:00
|
|
|
copied = new(T)
|
2022-01-06 06:40:23 -05:00
|
|
|
*copied = *original
|
|
|
|
|
return copied
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-20 20:37:23 +00:00
|
|
|
func CopySlice[T string | uint16 | netip.Addr | netip.Prefix](original []T) (copied []T) {
|
|
|
|
|
return slices.Clone(original)
|
2022-01-06 06:40:23 -05:00
|
|
|
}
|