uri.go 658 B

123456789101112131415161718192021222324
  1. package binder
  2. // URIBinding is the binder implementation for populating values from route parameters.
  3. type URIBinding struct{}
  4. // Name returns the binding name.
  5. func (*URIBinding) Name() string {
  6. return "uri"
  7. }
  8. // Bind parses the URI parameters and returns the result.
  9. func (b *URIBinding) Bind(params []string, paramsFunc func(key string, defaultValue ...string) string, out any) error {
  10. data := make(map[string][]string, len(params))
  11. for _, param := range params {
  12. data[param] = append(data[param], paramsFunc(param))
  13. }
  14. return parse(b.Name(), out, data)
  15. }
  16. // Reset resets URIBinding binder.
  17. func (*URIBinding) Reset() {
  18. // Nothing to reset
  19. }