Swift field-level input validation collector
Swift
import Foundation
struct FieldError: Error, CustomStringConvertible {
let field: String
let message: String
var description: String { "\(field): \(message)" }
}
func validate(name: String, email: String, age: Int) -> [FieldError] {
var errors: [FieldError] = []
if name.trimmingCharacters(in: .whitespaces).isEmpty {
errors.append(FieldError(field: "name", message: "required"))
}
if !email.contains("@") {
errors.append(FieldError(field: "email", message: "invalid address"))
}
if !(0...150).contains(age) {
errors.append(FieldError(field: "age", message: "must be 0-150"))
}
return errors
}