Tidy struct scanner if statement
This commit is contained in:
parent
23b45b716e
commit
11ee1379ce
@ -920,9 +920,7 @@ func (field *Field) setupValuerAndSetter() {
|
|||||||
// struct scanner
|
// struct scanner
|
||||||
field.Set = func(ctx context.Context, value reflect.Value, v interface{}) (err error) {
|
field.Set = func(ctx context.Context, value reflect.Value, v interface{}) (err error) {
|
||||||
reflectV := reflect.ValueOf(v)
|
reflectV := reflect.ValueOf(v)
|
||||||
if !reflectV.IsValid() {
|
if !reflectV.IsValid() || reflectV.Kind() == reflect.Ptr && reflectV.IsNil() {
|
||||||
field.ReflectValueOf(ctx, value).Set(reflect.New(field.FieldType).Elem())
|
|
||||||
} else if reflectV.Kind() == reflect.Ptr && reflectV.IsNil() {
|
|
||||||
field.ReflectValueOf(ctx, value).Set(reflect.New(field.FieldType).Elem())
|
field.ReflectValueOf(ctx, value).Set(reflect.New(field.FieldType).Elem())
|
||||||
} else if reflectV.Type().AssignableTo(field.FieldType) {
|
} else if reflectV.Type().AssignableTo(field.FieldType) {
|
||||||
field.ReflectValueOf(ctx, value).Set(reflectV)
|
field.ReflectValueOf(ctx, value).Set(reflectV)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user