Skip to content

Instantly share code, notes, and snippets.

@kazk
Last active August 29, 2015 14:14
Show Gist options
  • Save kazk/fa7184cb9e9cbfad3f40 to your computer and use it in GitHub Desktop.
Save kazk/fa7184cb9e9cbfad3f40 to your computer and use it in GitHub Desktop.
// Equality operator for Tuples with elements conforming to `Equatable`. (Up to 6)
func ==<A : Equatable, B : Equatable>(lhs: (A, B), rhs: (A, B)) -> Bool {
return (lhs.0 == rhs.0) && (lhs.1 == rhs.1)
}
func !=<A : Equatable, B : Equatable>(lhs: (A, B), rhs: (A, B)) -> Bool {
return !(lhs == rhs)
}
func ==<A : Equatable, B : Equatable, C : Equatable>(lhs: (A, B, C), rhs: (A, B, C)) -> Bool {
return (lhs.0 == rhs.0) && (lhs.1 == rhs.1) && (lhs.2 == rhs.2)
}
func !=<A : Equatable, B : Equatable, C : Equatable>(lhs: (A, B, C), rhs: (A, B, C)) -> Bool {
return !(lhs == rhs)
}
func ==<A : Equatable, B : Equatable, C : Equatable, D : Equatable>(lhs: (A, B, C, D), rhs: (A, B, C, D)) -> Bool {
return (lhs.0 == rhs.0) && (lhs.1 == rhs.1) && (lhs.2 == rhs.2) &&
(lhs.3 == rhs.3)
}
func !=<A : Equatable, B : Equatable, C : Equatable, D : Equatable>(lhs: (A, B, C, D), rhs: (A, B, C, D)) -> Bool {
return !(lhs == rhs)
}
func ==<A : Equatable, B : Equatable, C : Equatable, D : Equatable, E : Equatable>(lhs: (A, B, C, D, E), rhs: (A, B, C, D, E)) -> Bool {
return (lhs.0 == rhs.0) && (lhs.1 == rhs.1) && (lhs.2 == rhs.2) &&
(lhs.3 == rhs.3) && (lhs.4 == rhs.4)
}
func !=<A : Equatable, B : Equatable, C : Equatable, D : Equatable, E : Equatable>(lhs: (A, B, C, D, E), rhs: (A, B, C, D, E)) -> Bool {
return !(lhs == rhs)
}
func ==<A : Equatable, B : Equatable, C : Equatable, D : Equatable, E : Equatable, F : Equatable>(lhs: (A, B, C, D, E, F), rhs: (A, B, C, D, E, F)) -> Bool {
return (lhs.0 == rhs.0) && (lhs.1 == rhs.1) && (lhs.2 == rhs.2) &&
(lhs.3 == rhs.3) && (lhs.4 == rhs.4) && (lhs.5 == rhs.5)
}
func !=<A : Equatable, B : Equatable, C : Equatable, D : Equatable, E : Equatable, F : Equatable>(lhs: (A, B, C, D, E, F), rhs: (A, B, C, D, E, F)) -> Bool {
return !(lhs == rhs)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment