Files
new-api/common/copy.go

27 lines
457 B
Go

package common
import (
"fmt"
"github.com/jinzhu/copier"
)
func Copy[T any](src *T, deepCopy bool) (*T, error) {
if src == nil {
return nil, fmt.Errorf("copy source cannot be nil")
}
var dst T
if deepCopy {
err := copier.CopyWithOption(&dst, src, copier.Option{DeepCopy: true, IgnoreEmpty: true})
if err != nil {
return nil, err
}
} else {
err := copier.Copy(&dst, src)
if err != nil {
return nil, err
}
}
return &dst, nil
}