github.com/goravel/framework@v1.13.9/database/gorm/utils.go (about) 1 package gorm 2 3 import "reflect" 4 5 func copyStruct(dest any) reflect.Value { 6 t := reflect.TypeOf(dest) 7 v := reflect.ValueOf(dest) 8 if t.Kind() == reflect.Pointer { 9 t = t.Elem() 10 v = v.Elem() 11 } 12 13 destFields := make([]reflect.StructField, 0) 14 for i := 0; i < t.NumField(); i++ { 15 destFields = append(destFields, t.Field(i)) 16 } 17 copyDestStruct := reflect.StructOf(destFields) 18 19 return v.Convert(copyDestStruct) 20 }