import UIKit
import Foundation
struct Product {
var retailPrice: Double
var name: String
}
extension Product: Hashable {
var hashValue: Int {
return name.hashValue ^
retailPrice.hashValue &* 16777619
}
func hash(into hasher: inout Hasher) {
hasher.combine(name)
hasher.combine(retailPrice)
}
static func == (lhs: Product, rhs: Product) -> Bool {
return lhs.name == rhs.name
}
}
class Check {
var products: [Product: Int] = [:]
var count = 0
func addProduct(product: Product) {
count += 1
products.updateValue(count, forKey: product)
}
}
var check = Check()
var productOne = Product(retailPrice: 1, name: "1")
var productTwo = Product(retailPrice: 2, name: "2")
var productThree = Product(retailPrice: 3, name: "3")
var productFour = Product(retailPrice: 4, name: "4")
var productFive = Product(retailPrice: 5, name: "5")
check.addProduct(product: productOne)
check.addProduct(product: productOne)
check.addProduct(product: productOne)