| 1234567891011121314151617181920212223242526272829303132333435363738 | // Copyright 2022 Gin Core Team. All rights reserved.// Use of this source code is governed by a MIT style// license that can be found in the LICENSE file.package bindingimport (	"net/http"	"net/textproto"	"reflect")type headerBinding struct{}func (headerBinding) Name() string {	return "header"}func (headerBinding) Bind(req *http.Request, obj any) error {	if err := mapHeader(obj, req.Header); err != nil {		return err	}	return validate(obj)}func mapHeader(ptr any, h map[string][]string) error {	return mappingByPtr(ptr, headerSource(h), "header")}type headerSource map[string][]stringvar _ setter = headerSource(nil)func (hs headerSource) TrySet(value reflect.Value, field reflect.StructField, tagValue string, opt setOptions) (bool, error) {	return setByForm(value, field, hs, textproto.CanonicalMIMEHeaderKey(tagValue), opt)}
 |