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, E> validate(T value) {
T currentValue = value;
for (final validator in validators) {
final result = validator.validate(currentValue);
switch (result) {
case Valid(:final value):
currentValue = value;
case Invalid() || InvalidAll():
return result;
}
}
return Valid(currentValue);
}