Go to file
2021-07-09 12:46:24 +02:00
config feat: only use allfirst 2021-07-09 12:46:24 +02:00
fend feat: add custom fend 2021-07-09 11:18:29 +02:00
rule feat: add custom rule error 2021-07-09 11:37:07 +02:00
.editorconfig initial commit 2021-06-24 15:07:02 +02:00
.golangci.yml refactor: add fend wrapper to call methods only when needed 2021-06-28 10:00:41 +02:00
all_test.go feat: only use allfirst 2021-07-09 12:46:24 +02:00
all.go feat: only use allfirst 2021-07-09 12:46:24 +02:00
benchmarks_test.go refactor: skip unneeded fncs 2021-07-09 11:08:29 +02:00
error.go feat: only use allfirst 2021-07-09 12:46:24 +02:00
errors.go feat: only use allfirst 2021-07-09 12:46:24 +02:00
fendfield.go refactor: skip unneeded fncs 2021-07-09 11:08:29 +02:00
fendfields.go refactor: skip unneeded fncs 2021-07-09 11:08:29 +02:00
field.go refactor: skip unneeded fncs 2021-07-09 11:08:29 +02:00
first_test.go refactor: skip unneeded fncs 2021-07-09 11:08:29 +02:00
first.go feat: only use allfirst 2021-07-09 12:46:24 +02:00
go.mod wip: change api 2021-07-09 07:47:16 +02:00
go.sum wip: change api 2021-07-09 07:47:16 +02:00
LICENSE initial commit 2021-06-24 15:07:02 +02:00
Makefile initial commit 2021-06-24 15:07:02 +02:00
README.md initial commit 2021-06-24 15:07:02 +02:00

fender

a piece of rope or a tyre that protects the side of a boat from knocks

Usage

err := fender.NewFields().
	Add("firstName", fender.RequiredString(u.FirstName)).
	Add("lastName", fender.RequiredString(u.LastName)).
	Add("age", fender.MinInt(u.Age, 0), fender.MaxInt(u.Age, 130)).
	Add("email", fender.Email(u.Email, false)).
	Add("street", fender.RequiredString(u.Street)).
	Add("city", fender.RequiredString(u.City)).
	Add("planet", fender.RequiredString(u.Planet)).
	Add("phone", fender.RequiredString(u.Phone)).
	AllError()
if err != nil {
	panic(err)
}

Rules

List of built-in fending rules:

  • email
  • enum
  • max
  • min
  • required
  • regex
  • size

Benchmarks

goos: darwin
goarch: amd64
cpu: Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz
BenchmarkFender/valid-12           	     1496362	       699 ns/op
BenchmarkFender/invalid-12               1176252 	       975 ns/op
BenchmarkPlayground/valid-12           	   42367	     25967 ns/op
BenchmarkPlayground/invalid-12         	   37567	     28034 ns/op

References & alternatives

How to Contribute

Make a pull request...

License

Distributed under MIT License, please see license file within the code for more details.