21 lines
358 B
Go
21 lines
358 B
Go
package copier
|
|
|
|
import "reflect"
|
|
|
|
func Copy(dst, src any, opts ...option) error {
|
|
copier := New(opts...)
|
|
return copier.Copy(dst, src)
|
|
}
|
|
|
|
func Clone(src any, opts ...option) (any, error) {
|
|
if src == nil {
|
|
return nil, nil
|
|
}
|
|
|
|
srcType := reflect.TypeOf(src)
|
|
dst := reflect.New(srcType).Interface()
|
|
|
|
err := New(opts...).Copy(dst, src)
|
|
return dst, err
|
|
}
|