validate method

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

Implementation

@override
ValidationResult<U> validate(T value) {
  final invalids =
      rules.map((e) => e.apply(value)).whereType<Invalid>().toList();
  if (invalids.isNotEmpty) {
    return invalids.reduce((value, element) =>
            Invalid<U>(reasons: [...value.reasons, ...element.reasons]))
        as Invalid<U>;
  }

  return ValidationResult.valid();
}