@@ -11,7 +11,7 @@ extension ReplicateAPI {
1111
1212 /// Set of replicate API errors
1313 @available ( iOS 15 . 0 , macOS 12 . 0 , tvOS 15 . 0 , watchOS 8 . 0 , * )
14- public enum Errors : Error , Hashable , LocalizedError {
14+ public enum Errors : Error , LocalizedError {
1515
1616 /// Base URL error
1717 case baseURLError
@@ -32,7 +32,7 @@ extension ReplicateAPI {
3232 case couldNotDecodeErrorContainer
3333
3434 /// Client-specific error with a custom message
35- case clientError( String )
35+ case clientError( LocalizedError )
3636
3737 /// Provides a localized description for each error case.
3838 public var errorDescription : String ? {
@@ -55,9 +55,29 @@ extension ReplicateAPI {
5555 case . couldNotDecodeErrorContainer:
5656 return NSLocalizedString ( " Could not decode the error response. The format might be incorrect. " , comment: " Decoding error " )
5757
58- case . clientError( let message ) :
59- return message
58+ case . clientError( let error ) :
59+ return error . localizedDescription
6060 }
6161 }
6262 }
6363}
64+ 65+ extension ReplicateAPI . Errors : Equatable {
66+ public static func == ( lhs: ReplicateAPI . Errors , rhs: ReplicateAPI . Errors ) -> Bool {
67+ switch ( lhs, rhs) {
68+ case ( . baseURLError, . baseURLError) ,
69+ ( . timeout, . timeout) ,
70+ ( . terminated, . terminated) ,
71+ ( . couldNotDecodeErrorContainer, . couldNotDecodeErrorContainer) :
72+ return true
73+ case ( . responseError( let lhsError) , . responseError( let rhsError) ) :
74+ return lhsError == rhsError
75+ case ( . invalidResponse( let lhsResponse, let lhsMessage) , . invalidResponse( let rhsResponse, let rhsMessage) ) :
76+ return lhsResponse == rhsResponse && lhsMessage == rhsMessage
77+ case ( . clientError( let lhsError) , . clientError( let rhsError) ) :
78+ return lhsError. localizedDescription == rhsError. localizedDescription
79+ default :
80+ return false
81+ }
82+ }
83+ }
0 commit comments