diff --git a/binding/form.go b/binding/form.go index eef0cc13..09087ae0 100644 --- a/binding/form.go +++ b/binding/form.go @@ -66,6 +66,8 @@ func (formMultipartBinding) Bind(req *http.Request, obj interface{}) error { type multipartRequest http.Request +var _ setter = (*multipartRequest)(nil) + var ( multipartFileHeaderStructType = reflect.TypeOf(multipart.FileHeader{}) ) diff --git a/binding/form_mapping.go b/binding/form_mapping.go index 85eb4ce5..615e89ff 100644 --- a/binding/form_mapping.go +++ b/binding/form_mapping.go @@ -31,12 +31,15 @@ func mapFormByTag(ptr interface{}, form map[string][]string, tag string) error { return mappingByPtr(ptr, formSource(form), tag) } +// setter - try to set value on a walking by fields of a struct type setter interface { Set(value reflect.Value, field reflect.StructField, key string, opt setOptions) (isSetted bool, err error) } type formSource map[string][]string +var _ setter = formSource(nil) + func (form formSource) Set(value reflect.Value, field reflect.StructField, tagValue string, opt setOptions) (isSetted bool, err error) { return setByForm(value, field, form, tagValue, opt) }