BatchValidationResult.fromResults constructor

BatchValidationResult.fromResults(
  1. List<JsonValidationResult> results
)

Creates a BatchValidationResult from a list of per-item JsonValidationResult values.

results must be in the same order as the corresponding input items to ensure failureIndices correctly identifies each failing position.

Failure results (where JsonValidationResult.isValid is false) should have non-empty JsonValidationResult.errors lists. A JsonValidationResult.failure constructed with an empty errors list will be counted in failureIndices but will produce no bullet lines in the consolidated log message.

Implementation

factory BatchValidationResult.fromResults(List<JsonValidationResult> results) {
  final List<int> failureIndices = <int>[
    for (int i = 0; i < results.length; i++)
      if (!results[i].isValid) i,
  ];
  return BatchValidationResult._(
    isValid: failureIndices.isEmpty,
    results: List<JsonValidationResult>.unmodifiable(results),
    failureCount: failureIndices.length,
    failureIndices: List<int>.unmodifiable(failureIndices),
  );
}