joeybloggs
5c8ad6a1a9
only check struct validity once
9 years ago
joeybloggs
cdfcf16a86
fix some minor listing.
9 years ago
Dean Karn
25f1823069
Merge pull request #243 from kenkouot/patch-1
...
Fix typo: ne is validation key for not equal
9 years ago
Kenneth Kouot
719d0b12ee
Fix another typo: eq to ne
9 years ago
Kenneth Kouot
3499e730cb
Fix typo: ne is validation key for not equal
9 years ago
joeybloggs
014792cf3e
Update README version
9 years ago
joeybloggs
e7749ea250
Update validations for "url" and "uri" because of Go 1.6 changes
...
added checks for blank and fragment/suffix because of Go 1.6 change 617c93ce74 (diff-6c2d018290e298803c0c9419d8739885L195)
fix was to emulate browser and strip the '#' suffix prior to validation. see #237
9 years ago
joeybloggs
93bb347253
Update validations for "url" and "uri" because of Go 1.6 changes
...
added checks for blank and fragment/suffix because of Go 1.6 change 617c93ce74 (diff-6c2d018290e298803c0c9419d8739885L195)
fix was to emulate browser and strip the '#' suffix prior to validation. see #237
9 years ago
Dean Karn
1214d3629c
Update README.md
9 years ago
Dean Karn
bd356b6899
Merge pull request #235 from moogle19/master
...
Add unicode email tests
9 years ago
Kevin Seidel
851787be1b
Add unicode email tests
9 years ago
joeybloggs
f38559b489
Update checking unexpected fields for Go 1.6 https://tip.golang.org/doc/go1.6#reflect
...
* I have not run into the issue yet, but being preemptive
9 years ago
Dean Karn
4c79e69823
Merge pull request #234 from go-playground/krhubert
...
Add validation functions for tcp/udp/ip/unix addresses
9 years ago
joeybloggs
bf5ac690d6
Add a couple more test cases
9 years ago
joeybloggs
6851add4e4
Update to avoid double resolves
9 years ago
joeybloggs
4cb9152af0
correct IsUPDAddrResolvable functions
9 years ago
joeybloggs
faf40fd62f
Correct validation for TCPAddrResolvable
9 years ago
Dean Karn
73aaa89512
Update README.md
9 years ago
joeybloggs
7b758151c6
Add workaround for go issue
9 years ago
Hubert Krauze
3eaf857419
Add docs tcp/udp/ip/unix addresses resolve
9 years ago
Hubert Krauze
ee0ce7d37e
Add test for tcp/udp/ip/unix addresses resolve
9 years ago
Hubert Krauze
312ba49f28
Remove duplicated "Usage: mac" from docs
9 years ago
Hubert Krauze
def24ae611
Add Resolvable suffix to functions so they can be more meaningful
9 years ago
Hubert Krauze
5a99cf6052
Add validation functions for tcp/udp/ip/unix addresses
9 years ago
joeybloggs
c193cecd12
Merge branch 'complimentary-software-section' into v8
9 years ago
joeybloggs
64b7e2bb79
correct CI links
9 years ago
joeybloggs
50ada8d03a
Add Complimentary software section README
9 years ago
Dean Karn
d370e28d44
Merge pull request #232 from aarongreenlee/v8
...
Revisions to GoDoc
9 years ago
Aaron Greenlee
0b51ee1e8e
Removed duplicate punctuation.
9 years ago
Aaron Greenlee
71d9b9e91c
Some grammer corrections; Formatting of GoDoc
9 years ago
Aaron Greenlee
24ea3a17b5
Minor typo corrected in doc.go
9 years ago
Dean Karn
e8d470cd7a
Merge pull request #229 from go-playground/v8-development
...
Add FieldNamespace and NameNamespace + string comparison optimizations
9 years ago
Dean Karn
b737e38edb
Merge pull request #228 from joeybloggs/v8-development
...
Add FieldNamespace and NameNamespace + string comparison optimizations
9 years ago
joeybloggs
0862513fbf
Add some string check optimizations
...
* was using len(string) for some blank checks instead of string == ""
9 years ago
joeybloggs
0b533f264c
Only set namespace prefix when using FieldNameTag
9 years ago
joeybloggs
afbcf59553
Add FieldNamespace and NameNamespace
...
* Add FieldNamespace and NameNamespace to FieldError. This allows for having the CustomName i.e. JSON namespace contained within the NameNamespace which would be very useful when using a more restful API approach.
9 years ago
Dean Karn
bc50625289
Merge pull request #222 from go-playground/v8-development
...
Add validator logo
9 years ago
Dean Karn
e7cce24a67
Merge pull request #221 from muyiwaolurin/v8-development
...
Test Logo
9 years ago
Anthony Olurin
c4d5999ec0
Added logo to ReadMe
9 years ago
Dean Karn
43f534e655
Merge pull request #220 from go-playground/v8-development
...
Add new Anonymous test to hit new code
9 years ago
Dean Karn
8040a52f21
Merge pull request #219 from joeybloggs/v8-development
...
Add new Anonymous test to hit new code
9 years ago
joeybloggs
934bef0ce5
Add new Anonymous test to hit new code
...
* now have 100% test coverage again.
9 years ago
Dean Karn
0794474f60
Merge pull request #218 from go-playground/v8-development
...
Add struct field + associated tags caching
9 years ago
Dean Karn
589c2ad113
Merge pull request #217 from joeybloggs/v8-development
...
Add struct field + associated tags caching
9 years ago
joeybloggs
e019c28542
Add struct field + associated tags caching
...
* This essentially reduces the number of cache tag lookups for a structs fields to one.
9 years ago
joeybloggs
94182a2199
init struct cache changes
9 years ago
Dean Karn
638ea8a3f8
Merge pull request #216 from go-playground/v8-development
...
Micro optimization in Tag Cache
9 years ago
Dean Karn
d5987d5437
Merge pull request #215 from joeybloggs/v8-development
...
Micro optimization in Tag Cache
9 years ago
joeybloggs
b0bd08d7c8
Micro optimization in Tag Cache
...
Removed defer from the simple Tag Cache lock & unlock and reduced
execution time for even single field validation by almost 100ns
from 254ns/op to 163ns/op .. Not badd for such a simple modification
and this effect ripples throughout struct validation.
```go
$ go test -cpu=4 -bench=. -benchmem=true
PASS
BenchmarkFieldSuccess-4 10000000 163 ns/op 0 B/op 0 allocs/op
BenchmarkFieldFailure-4 2000000 673 ns/op 400 B/op 4 allocs/op
BenchmarkFieldDiveSuccess-4 500000 3019 ns/op 480 B/op 27 allocs/op
BenchmarkFieldDiveFailure-4 500000 3553 ns/op 880 B/op 31 allocs/op
BenchmarkFieldCustomTypeSuccess-4 5000000 347 ns/op 32 B/op 2 allocs/op
BenchmarkFieldCustomTypeFailure-4 2000000 645 ns/op 400 B/op 4 allocs/op
BenchmarkFieldOrTagSuccess-4 1000000 1177 ns/op 16 B/op 1 allocs/op
BenchmarkFieldOrTagFailure-4 1000000 1093 ns/op 432 B/op 6 allocs/op
BenchmarkStructLevelValidationSuccess-4 2000000 702 ns/op 160 B/op 6 allocs/op
BenchmarkStructLevelValidationFailure-4 1000000 1279 ns/op 592 B/op 11 allocs/op
BenchmarkStructSimpleCustomTypeSuccess-4 1000000 1010 ns/op 80 B/op 5 allocs/op
BenchmarkStructSimpleCustomTypeFailure-4 1000000 1544 ns/op 624 B/op 11 allocs/op
BenchmarkStructPartialSuccess-4 1000000 1249 ns/op 400 B/op 11 allocs/op
BenchmarkStructPartialFailure-4 1000000 1797 ns/op 816 B/op 16 allocs/op
BenchmarkStructExceptSuccess-4 2000000 927 ns/op 368 B/op 9 allocs/op
BenchmarkStructExceptFailure-4 1000000 1259 ns/op 400 B/op 11 allocs/op
BenchmarkStructSimpleCrossFieldSuccess-4 1000000 1076 ns/op 128 B/op 6 allocs/op
BenchmarkStructSimpleCrossFieldFailure-4 1000000 1623 ns/op 560 B/op 11 allocs/op
BenchmarkStructSimpleCrossStructCrossFieldSuccess-4 1000000 1582 ns/op 176 B/op 9 allocs/op
BenchmarkStructSimpleCrossStructCrossFieldFailure-4 1000000 2139 ns/op 608 B/op 14 allocs/op
BenchmarkStructSimpleSuccess-4 1000000 1040 ns/op 48 B/op 3 allocs/op
BenchmarkStructSimpleFailure-4 1000000 1683 ns/op 624 B/op 11 allocs/op
BenchmarkStructSimpleSuccessParallel-4 5000000 356 ns/op 48 B/op 3 allocs/op
BenchmarkStructSimpleFailureParallel-4 2000000 831 ns/op 624 B/op 11 allocs/op
BenchmarkStructComplexSuccess-4 200000 6738 ns/op 512 B/op 30 allocs/op
BenchmarkStructComplexFailure-4 200000 11387 ns/op 3415 B/op 72 allocs/op
BenchmarkStructComplexSuccessParallel-4 500000 2330 ns/op 512 B/op 30 allocs/op
BenchmarkStructComplexFailureParallel-4 300000 4857 ns/op 3416 B/op 72 allocs/op
```
```go
$ go test -cpu=4 -bench=. -benchmem=true
PASS
BenchmarkFieldSuccess-4 5000000 254 ns/op 0 B/op 0 allocs/op
BenchmarkFieldFailure-4 2000000 779 ns/op 400 B/op 4 allocs/op
BenchmarkFieldDiveSuccess-4 500000 3451 ns/op 480 B/op 27 allocs/op
BenchmarkFieldDiveFailure-4 300000 3954 ns/op 880 B/op 31 allocs/op
BenchmarkFieldCustomTypeSuccess-4 3000000 451 ns/op 32 B/op 2 allocs/op
BenchmarkFieldCustomTypeFailure-4 2000000 751 ns/op 400 B/op 4 allocs/op
BenchmarkFieldOrTagSuccess-4 1000000 1312 ns/op 16 B/op 1 allocs/op
BenchmarkFieldOrTagFailure-4 1000000 1206 ns/op 432 B/op 6 allocs/op
BenchmarkStructLevelValidationSuccess-4 2000000 829 ns/op 160 B/op 6 allocs/op
BenchmarkStructLevelValidationFailure-4 1000000 1403 ns/op 592 B/op 11 allocs/op
BenchmarkStructSimpleCustomTypeSuccess-4 1000000 1238 ns/op 80 B/op 5 allocs/op
BenchmarkStructSimpleCustomTypeFailure-4 1000000 1771 ns/op 624 B/op 11 allocs/op
BenchmarkStructPartialSuccess-4 1000000 1399 ns/op 400 B/op 11 allocs/op
BenchmarkStructPartialFailure-4 1000000 1926 ns/op 816 B/op 16 allocs/op
BenchmarkStructExceptSuccess-4 2000000 930 ns/op 368 B/op 9 allocs/op
BenchmarkStructExceptFailure-4 1000000 1381 ns/op 400 B/op 11 allocs/op
BenchmarkStructSimpleCrossFieldSuccess-4 1000000 1253 ns/op 128 B/op 6 allocs/op
BenchmarkStructSimpleCrossFieldFailure-4 1000000 1849 ns/op 560 B/op 11 allocs/op
BenchmarkStructSimpleCrossStructCrossFieldSuccess-4 1000000 1902 ns/op 176 B/op 9 allocs/op
BenchmarkStructSimpleCrossStructCrossFieldFailure-4 500000 2453 ns/op 608 B/op 14 allocs/op
BenchmarkStructSimpleSuccess-4 1000000 1182 ns/op 48 B/op 3 allocs/op
BenchmarkStructSimpleFailure-4 1000000 1842 ns/op 624 B/op 11 allocs/op
BenchmarkStructSimpleSuccessParallel-4 5000000 342 ns/op 48 B/op 3 allocs/op
BenchmarkStructSimpleFailureParallel-4 2000000 665 ns/op 624 B/op 11 allocs/op
BenchmarkStructComplexSuccess-4 200000 7924 ns/op 512 B/op 30 allocs/op
BenchmarkStructComplexFailure-4 100000 12605 ns/op 3415 B/op 72 allocs/op
BenchmarkStructComplexSuccessParallel-4 1000000 2421 ns/op 512 B/op 30 allocs/op
BenchmarkStructComplexFailureParallel-4 300000 4234 ns/op 3416 B/op 72 allocs/op
```
9 years ago
Dean Karn
ec28e2da37
Merge pull request #214 from go-playground/v8-development
...
Update benchmarks + correct benchmark error
9 years ago