Skip to content

Commit 2133036

Browse files
committed
Update Errors.swift
1 parent 575bb78 commit 2133036

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed

Sources/replicate-kit-swift/error/Errors.swift

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)