At long last support for traversing through slice, array and maps and validating at any or all levels!
see documentation for the new "dive" tag
benchmarks have slightly increased ns/op and B/ops for this functionality and an additional allocation for single field validation.
$ go test -cpu=4 -bench=. -benchmem=true
PASS
BenchmarkValidateField-4 3000000 439 ns/op 192 B/op 2 allocs/op
BenchmarkValidateStructSimple-4 1000000 2382 ns/op 656 B/op 10 allocs/op
BenchmarkTemplateParallelSimple-4 2000000 910 ns/op 656 B/op 10 allocs/op
BenchmarkValidateStructLarge-4 100000 13201 ns/op 4309 B/op 60 allocs/op
BenchmarkTemplateParallelLarge-4 300000 5240 ns/op 4311 B/op 60 allocs/op
for #78