20 lines
335 B
Go
20 lines
335 B
Go
package utils
|
|
|
|
import (
|
|
"reflect"
|
|
)
|
|
|
|
func MergeNonZeroFields(src, dest interface{}) {
|
|
srcVal := reflect.ValueOf(src).Elem()
|
|
destVal := reflect.ValueOf(dest).Elem()
|
|
|
|
for i := 0; i < srcVal.NumField(); i++ {
|
|
srcField := srcVal.Field(i)
|
|
destField := destVal.Field(i)
|
|
|
|
if !srcField.IsZero() {
|
|
destField.Set(srcField)
|
|
}
|
|
}
|
|
}
|