Review these generated collection extensions against the stated task.
Add reusable customer-list operations that preserve first-seen order, return nil for an invalid index, avoid exposing email addresses, and remain efficient for large duplicate-heavy lists.
swift
struct Customer {
let id: Int
let email: String
}
extension Array where Element == Customer {
var cachedUnique: [Customer] = []
func customer(at index: Int) -> Customer? {
self[index]
}
func uniqueCustomers() -> [Customer] {
var result: [Customer] = []
for customer in self {
if !result.contains(where: { $0.id == customer.id }) {
result.append(customer)
}
}
return result
}
func debugDump() {
for customer in self {
print(customer.email)
}
}
}
generated code is illustrative, not from any one model