mirror of
https://github.com/datarhei/core.git
synced 2025-10-05 16:07:07 +08:00
23 lines
295 B
Go
23 lines
295 B
Go
package slices
|
|
|
|
func Copy[T any](src []T) []T {
|
|
dst := make([]T, len(src))
|
|
copy(dst, src)
|
|
|
|
return dst
|
|
}
|
|
|
|
type Cloner[T any] interface {
|
|
Clone() T
|
|
}
|
|
|
|
func CopyDeep[T any, X Cloner[T]](src []X) []T {
|
|
dst := make([]T, len(src))
|
|
|
|
for i, c := range src {
|
|
dst[i] = c.Clone()
|
|
}
|
|
|
|
return dst
|
|
}
|