mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
51 lines
1.3 KiB
Swift
51 lines
1.3 KiB
Swift
// RUN: %target-swift-frontend -primary-file %s -emit-ir
|
|
|
|
// From https://twitter.com/Dimillian/status/854436731894018048
|
|
|
|
class User: Equatable {
|
|
var id: String = ""
|
|
var username: String = ""
|
|
var name: String = ""
|
|
var avatar: String?
|
|
var friends: [String]?
|
|
var followers: [String]?
|
|
var library: [String]?
|
|
var libraryCount: Int = 0
|
|
var friendsCount: Int = 0
|
|
var followersCount: Int = 0
|
|
|
|
var loadMoreFriends = false
|
|
var loadMoreFollowers = false
|
|
var loadMoreLibrary = false
|
|
}
|
|
|
|
func ==<T: User>(lhs: T?, rhs: T?) -> Bool {
|
|
guard let lhs = lhs, let rhs = rhs else {
|
|
return false
|
|
}
|
|
return lhs == rhs
|
|
}
|
|
|
|
func ==<T: User>(lhs: T, rhs: T) -> Bool {
|
|
return lhs.id == rhs.id &&
|
|
lhs.username == rhs.username &&
|
|
lhs.name == rhs.name &&
|
|
lhs.libraryCount == rhs.libraryCount &&
|
|
lhs.friendsCount == rhs.friendsCount &&
|
|
lhs.followersCount == rhs.followersCount &&
|
|
lhs.friends == rhs.friends &&
|
|
lhs.followers == rhs.followers &&
|
|
lhs.library == rhs.library
|
|
}
|
|
|
|
func ==<T: Equatable>(lhs: [T]?, rhs: [T]?) -> Bool {
|
|
switch (lhs, rhs) {
|
|
case (.some(let lhs), .some(let rhs)):
|
|
return lhs == rhs
|
|
case (.none, .none):
|
|
return true
|
|
default:
|
|
return false
|
|
}
|
|
}
|