main.go 716 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package main
  2. import (
  3. "fmt"
  4. "gopkg.in/go-playground/validator.v9"
  5. )
  6. // MyStruct ..
  7. type MyStruct struct {
  8. String string `validate:"is-awesome"`
  9. }
  10. // use a single instance of Validate, it caches struct info
  11. var validate *validator.Validate
  12. func main() {
  13. validate = validator.New()
  14. validate.RegisterValidation("is-awesome", ValidateMyVal)
  15. s := MyStruct{String: "awesome"}
  16. err := validate.Struct(s)
  17. if err != nil {
  18. fmt.Printf("Err(s):\n%+v\n", err)
  19. }
  20. s.String = "not awesome"
  21. err = validate.Struct(s)
  22. if err != nil {
  23. fmt.Printf("Err(s):\n%+v\n", err)
  24. }
  25. }
  26. // ValidateMyVal implements validator.Func
  27. func ValidateMyVal(fl validator.FieldLevel) bool {
  28. return fl.Field().String() == "awesome"
  29. }