validate method
Implementation
@override
ValidationResult validate(T? value, {bool stopOnFirstError = false}) {
if (value == null) {
return ValidationResult.failure(['Value must not be null.']);
}
List<String>? collectedErrors;
for (final validator in validators) {
final (valid, error) = validator(value, context);
if (!valid && error != null) {
if (stopOnFirstError) {
return ValidationResult.failure([error]);
}
collectedErrors ??= [];
collectedErrors.add(error);
}
}
if (collectedErrors == null) {
return ValidationResult.success();
}
final errors = List.generate(
collectedErrors.length,
(i) => collectedErrors![i],
growable: false,
);
return ValidationResult.failure(errors);
}