any function

IValidator any(
  1. List<IValidator> validators
)

Passes the test if any of the Validators are valid, and fails if any are invalid

Implementation

IValidator any(List<IValidator> validators) => Validator<Result>(
      (value) {
        final collected = <Result>[];

        for (var i = 0; i < validators.length; i++) {
          final resOr = validators[i].validator(value);
          if (resOr is Future<Result>) {
            return _anyAsync(value, validators, collected, i, resOr);
          }
          final res = resOr;
          collected.add(res);
          if (res.isValid) return res;
        }

        return Result.invalid(
          value,
          expectations: collected.expand((r) => r.expectations).toList(),
        );
      },
    );