validate method
Performs type coercion against an input
value, and returns a list of errors if the validation was unsuccessful.
Implementation
@override
ValidationResult<List<Serialized>> validate(String key, List input) {
//if (input is! List) {
// return ValidationResult._failure(['Expected "$key" to be a list.']);
//}
var out = <Serialized>[];
var errors = <String>[];
for (var i = 0; i < input.length; i++) {
var k = '"$key" at index $i';
var v = input[i];
var result = ofType.validate(k, v);
if (!result.successful) {
errors.addAll(result.errors);
} else {
out.add(v);
}
}
if (errors.isNotEmpty) return ValidationResult._failure(errors);
return ValidationResult._ok(out);
}