# Functions

All is a constraint that checks if all elements of s satisfy the constraint c.
And groups multiple constraints in an "and" relation and fails according to the given strategy.
CIDR is a constraint that checks if s is a valid CIDR.
DNSName is a constraint that checks if s is a valid DNS name.
Empty is a constraint that checks if s is empty.
EmptySlice is a constraint that checks if s is an empty slice.
Equal is a constraint that checks if s is equal to t.
IfNotNil evaluates a constraint if and only if s is not nil.
IPAddress is a constraint that checks if s is a valid IP address.
MatchRegex is a constraint that if s matches regex.
NewErrorTree creates a new error tree from the given error.
NewValidator creates a new Validator.
NotEmpty is a constraint that checks if s is not empty.
NotEmptySlice is a constraint that checks if slice s is not empty.
NotEqual is a constraint that checks if s is not equal to t.
OneOf is a constraint that s is in the set of values p.
Or groups multiple constraints in an "or" relation.

# Constants

EvaluateAll continues evaluating all constraints even if one is not satisfied.
FailFast stops validation on the first error.

# Structs

Constraint is a constraint on a document or a field of a document.
TreeError is returned when a document is not valid.
ValidateOptions are the options to use when validating a document.
Validator validates documents.

# Interfaces

Validatable is implemented by documents that can be validated.

# Type aliases

ErrStrategy is the strategy to use when encountering an error during validation.