validateAt method
Validates input located at path within a larger document.
Implementations must report issues with paths rooted at path.
Implementation
@override
SchemaResult<int> validateAt(Object? input, List<Object> path) {
final int parsed;
if (input is int) {
parsed = input;
} else if (input is double &&
input.isFinite &&
input == input.truncateToDouble()) {
parsed = input.truncate();
} else {
return _typeFailure(path, 'integer', input);
}
final issues = <SchemaIssue>[];
if (minimum != null && parsed < minimum!) {
issues.add(SchemaIssue(
path: path,
message: 'Value must be >= $minimum, got $parsed',
actual: input,
));
}
if (maximum != null && parsed > maximum!) {
issues.add(SchemaIssue(
path: path,
message: 'Value must be <= $maximum, got $parsed',
actual: input,
));
}
return issues.isEmpty ? SchemaSuccess(parsed) : SchemaFailure(issues);
}