any.go 581 B

123456789101112131415161718192021
  1. package goshared
  2. const anyTpl = `{{ $f := .Field }}{{ $r := .Rules }}
  3. {{ template "required" . }}
  4. if a := {{ accessor . }}; a != nil {
  5. {{ if $r.In }}
  6. if _, ok := {{ lookup $f "InLookup" }}[a.GetTypeUrl()]; !ok {
  7. err := {{ err . "type URL must be in list " $r.In }}
  8. if !all { return err }
  9. errors = append(errors, err)
  10. }
  11. {{ else if $r.NotIn }}
  12. if _, ok := {{ lookup $f "NotInLookup" }}[a.GetTypeUrl()]; ok {
  13. err := {{ err . "type URL must not be in list " $r.NotIn }}
  14. if !all { return err }
  15. errors = append(errors, err)
  16. }
  17. {{ end }}
  18. }
  19. `