validate method

  1. @override
ValidationResult<T, E> validate(
  1. T value
)
override

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);
}