mirror of
https://github.com/yusing/godoxy.git
synced 2026-03-28 11:51:53 +01:00
fix serialization, added benchmark tests, updated next release docs
This commit is contained in:
@@ -204,8 +204,13 @@ func Deserialize(src SerializedObject, dst any) E.Error {
|
||||
}
|
||||
if hasValidateTag {
|
||||
errs.Add(ValidateWithFieldTags(dstV.Interface()))
|
||||
} else if validator, ok := dstV.Addr().Interface().(CustomValidator); ok {
|
||||
errs.Add(validator.Validate())
|
||||
} else {
|
||||
if dstV.CanAddr() {
|
||||
dstV = dstV.Addr()
|
||||
}
|
||||
if validator, ok := dstV.Interface().(CustomValidator); ok {
|
||||
errs.Add(validator.Validate())
|
||||
}
|
||||
}
|
||||
return errs.Error()
|
||||
case reflect.Map:
|
||||
@@ -222,7 +227,10 @@ func Deserialize(src SerializedObject, dst any) E.Error {
|
||||
errs.Add(err.Subject(k))
|
||||
}
|
||||
}
|
||||
if validator, ok := dstV.Addr().Interface().(CustomValidator); ok {
|
||||
if dstV.CanAddr() {
|
||||
dstV = dstV.Addr()
|
||||
}
|
||||
if validator, ok := dstV.Interface().(CustomValidator); ok {
|
||||
errs.Add(validator.Validate())
|
||||
}
|
||||
return errs.Error()
|
||||
|
||||
Reference in New Issue
Block a user