validate method
Validates value and returns a ValidationResult.
Returns Valid if the value passes validation, or Invalid/InvalidAll if it fails.
Implementation
@override
ValidationResult<T, EOut> validate(T value) {
return validator.validate(value).mapError(mapper);
}