code: func Bind(val interface{}) HandlerFunc {
  	value := reflect.ValueOf(val)
  	if value.Kind() == reflect.Ptr {
  		panic(`Bind struct can not be a pointer. Example:
  	Use: gin.Bind(Struct{}) instead of gin.Bind(&Struct{})
  `)
  	}
  	typ := value.Type()
  
  	return func(c *Context) {
  		obj := reflect.New(typ).Interface()
  		if c.Bind(obj) == nil {
  			c.Set(BindKey, obj)
  		}
  	}
  }
docs: // Bind is a helper function for given interface object and returns a Gin middleware.