Errors holds onto all of the error messages that get generated during the validation process.
NewErrors returns a pointer to a Errors object that has been primed and ready to go.
Validate takes in n number of Validator objects and will run them and return back a point to a Errors object that will contain any errors.
Add will add a new message to the list of errors using the given key. If the key already exists the message will be appended to the array of the existing messages.
Append concatenates two Errors objects together. This will modify the first object in place.
Count returns the number of errors.
Error implements the error interface
Get returns an array of error messages for the given key.
HasAny returns true/false depending on whether any errors have been tracked.
Keys return all field names which have error
Validator must be implemented in order to pass the validator object into the Validate function.
ValidatorFunc wraps any function in a "Validator" to make it easy to write custom ones.