import Foundation
struct Person: Codable {
let id: Int
let name: String
let email: String
let active: Bool
init(id: Int, name: String, email: String, active: Bool = true) {
self.id = id
self.name = name
self.email = email
self.active = active
}
}
class Repository<T> {
private var items: [Int: T] = [:]
func add(key: Int, item: T) {
items[key] = item
}
func find(key: Int) -> T? {
return items[key]
}
func getAll() -> [T] {
return Array(items.values)
}
}
func add(_ a: Int, _ b: Int) -> Int {
return a + b
}
enum Result<T> {
case success(T)
case failure(Error)
}
let repo = Repository<Person>()
repo.add(key: 1, item: Person(id: 1, name: "Alice", email: "alice@example.com"))
repo.add(key: 2, item: Person(id: 2, name: "Bob", email: "bob@example.com"))
for person in repo.getAll() {
print("\(person.name) <\(person.email)>")
}
print("3 + 4 = \(add(3, 4))")