package forms import ( "errors" "fmt" "net/http" "net/url" ) type Validator struct { Failed bool } func (v *Validator) MinLength(s string, min int) error { var err error = nil if len(s) < min { v.Failed = true err = fmt.Errorf("Minimum length: %v", min) } return err } func (v *Validator) Fail(s string) error { v.Failed = true return errors.New(s) } func ParseFormData(r *http.Request, parse func(url.Values, *Validator)) bool { v := Validator{} err := r.ParseForm() if err != nil { return true } parse(r.Form, &v) return v.Failed }