@@ -63,6 +63,13 @@ extension Task: CustomStringConvertible {
6363}
6464
6565extension Task : Hashable {
66+ public static func == ( lhs: Task , rhs: Task ) -> Bool {
67+ return lhs. launchPath == rhs. launchPath
68+ && lhs. arguments == rhs. arguments
69+ && lhs. workingDirectoryPath == rhs. workingDirectoryPath
70+ && lhs. environment == rhs. environment
71+ }
72+
6673 public var hashValue : Int {
6774 var result = launchPath. hashValue ^ ( workingDirectoryPath? . hashValue ?? 0 )
6875 for argument in arguments {
@@ -88,10 +95,6 @@ private func ==<Key: Equatable, Value: Equatable>(lhs: [Key: Value]?, rhs: [Key:
8895 }
8996}
9097
91- public func == ( lhs: Task , rhs: Task ) -> Bool {
92- return lhs. launchPath == rhs. launchPath && lhs. arguments == rhs. arguments && lhs. workingDirectoryPath == rhs. workingDirectoryPath && lhs. environment == rhs. environment
93- }
94-
9598/// A private class used to encapsulate a Unix pipe.
9699private final class Pipe {
97100 typealias ReadProducer = SignalProducer < Data , TaskError >
@@ -324,22 +327,24 @@ public enum TaskEvent<T>: TaskEventType {
324327 }
325328}
326329
327- public func == < T: Equatable > ( lhs: TaskEvent < T > , rhs: TaskEvent < T > ) -> Bool {
328- switch ( lhs, rhs) {
329- case let ( . launch( left) , . launch( right) ) :
330- return left == right
331-
332- case let ( . standardOutput( left) , . standardOutput( right) ) :
333- return left == right
334-
335- case let ( . standardError( left) , . standardError( right) ) :
336- return left == right
337-
338- case let ( . success( left) , . success( right) ) :
339- return left == right
340-
341- default :
342- return false
330+ extension TaskEvent where T: Equatable {
331+ public static func == ( lhs: TaskEvent < T > , rhs: TaskEvent < T > ) -> Bool {
332+ switch ( lhs, rhs) {
333+ case let ( . launch( left) , . launch( right) ) :
334+ return left == right
335+
336+ case let ( . standardOutput( left) , . standardOutput( right) ) :
337+ return left == right
338+
339+ case let ( . standardError( left) , . standardError( right) ) :
340+ return left == right
341+
342+ case let ( . success( left) , . success( right) ) :
343+ return left == right
344+
345+ default :
346+ return false
347+ }
343348 }
344349}
345350
0 commit comments