verify method

Result<void, List<String>> verify()

Returns a Result.ok if all verifiers do, otherwise returns a Result.err with all errors returned by all verifiers.

Implementation

Result<void, List<String>> verify() {
  final errors = verifiers
      .map((verifier) => verifier(this, '$parser'))
      .fold<Iterable<String>>(
          [],
          (iter, result) =>
              result.mapOrElse((_) => iter, (es) => iter.followedBy([es])));

  return errors.isEmpty
      ? const Result.ok(null)
      : Result.err(errors.toList(growable: false));
}