parent
a021b2ec9a
commit
946d444376
@ -0,0 +1,39 @@ |
|||||||
|
package main |
||||||
|
|
||||||
|
import ( |
||||||
|
"fmt" |
||||||
|
|
||||||
|
"gopkg.in/go-playground/validator.v9" |
||||||
|
) |
||||||
|
|
||||||
|
// MyStruct ..
|
||||||
|
type MyStruct struct { |
||||||
|
String string `validate:"is-awesome"` |
||||||
|
} |
||||||
|
|
||||||
|
// use a single instance of Validate, it caches struct info
|
||||||
|
var validate *validator.Validate |
||||||
|
|
||||||
|
func main() { |
||||||
|
|
||||||
|
validate = validator.New() |
||||||
|
validate.RegisterValidation("is-awesome", ValidateMyVal) |
||||||
|
|
||||||
|
s := MyStruct{String: "awesome"} |
||||||
|
|
||||||
|
err := validate.Struct(s) |
||||||
|
if err != nil { |
||||||
|
fmt.Printf("Err(s):\n%+v\n", err) |
||||||
|
} |
||||||
|
|
||||||
|
s.String = "not awesome" |
||||||
|
err = validate.Struct(s) |
||||||
|
if err != nil { |
||||||
|
fmt.Printf("Err(s):\n%+v\n", err) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// ValidateMyVal implements validator.Func
|
||||||
|
func ValidateMyVal(fl validator.FieldLevel) bool { |
||||||
|
return fl.Field().String() == "awesome" |
||||||
|
} |
Loading…
Reference in new issue