Skip to content

Commit c199c67

Browse files
committed
[SwiftTraderError] Conform to Equatable
1 parent 02ec837 commit c199c67

File tree

2 files changed

+136
-8
lines changed

2 files changed

+136
-8
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
//
2+
// SwiftTraderError+Equatable.swift
3+
//
4+
//
5+
// Created by Fernando Fernandes on 03.01.24.
6+
//
7+
8+
import Foundation
9+
10+
extension SwiftTraderError: Equatable {
11+
public static func == (lhs: SwiftTraderError, rhs: SwiftTraderError) -> Bool {
12+
switch (lhs, rhs) {
13+
case (.binanceMissingAuthentication,
14+
.binanceMissingAuthentication):
15+
return true
16+
17+
case (.binanceSpotNewOrder(let lhsError),
18+
.binanceSpotNewOrder(let rhsError)):
19+
return (lhsError as NSError) == (rhsError as NSError)
20+
21+
case (.binanceStatusCodeNotOK(let lhsStatusCode,
22+
let lhsLocalizedErrorMessage,
23+
let lhsCode,
24+
let lhsMessage),
25+
.binanceStatusCodeNotOK(let rhsStatusCode,
26+
let rhsLocalizedErrorMessage,
27+
let rhsCode,
28+
let rhsMessage)):
29+
return lhsStatusCode == rhsStatusCode
30+
&& lhsLocalizedErrorMessage == rhsLocalizedErrorMessage
31+
&& lhsCode == rhsCode
32+
&& lhsMessage == rhsMessage
33+
34+
case (.couldNotConvertToDouble(let lhsString),
35+
.couldNotConvertToDouble(let rhsString)):
36+
return lhsString == rhsString
37+
38+
case (.invalidLastDigit,
39+
.invalidLastDigit):
40+
return true
41+
42+
case (.invalidOffset(let lhsOffset, let lhsProfitPercentage),
43+
.invalidOffset(let rhsOffset, let rhsProfitPercentage)):
44+
return lhsOffset == rhsOffset && lhsProfitPercentage == rhsProfitPercentage
45+
46+
case (.kucoinFuturesAccountOverview(let lhsError),
47+
.kucoinFuturesAccountOverview(let rhsError)):
48+
return (lhsError as NSError) == (rhsError as NSError)
49+
50+
case (.kucoinFuturesCancelStopOrders(let lhsError),
51+
.kucoinFuturesCancelStopOrders(let rhsError)):
52+
return (lhsError as NSError) == (rhsError as NSError)
53+
54+
case (.kucoinFuturesOrderList(let lhsError),
55+
.kucoinFuturesOrderList(let rhsError)):
56+
return (lhsError as NSError) == (rhsError as NSError)
57+
58+
case (.kucoinFuturesPlaceStopLimitOrder(let lhsError),
59+
.kucoinFuturesPlaceStopLimitOrder(let rhsError)):
60+
return (lhsError as NSError) == (rhsError as NSError)
61+
62+
case (.kucoinFuturesPositionList(let lhsError),
63+
.kucoinFuturesPositionList(let rhsError)):
64+
return (lhsError as NSError) == (rhsError as NSError)
65+
66+
case (.kucoinFuturesStopOrderList(let lhsError),
67+
.kucoinFuturesStopOrderList(let rhsError)):
68+
return (lhsError as NSError) == (rhsError as NSError)
69+
70+
case (.kucoinMissingAuthentication,
71+
.kucoinMissingAuthentication):
72+
return true
73+
74+
case (.kucoinSpotCancelStopOrders(let lhsError),
75+
.kucoinSpotCancelStopOrders(let rhsError)):
76+
return (lhsError as NSError) == (rhsError as NSError)
77+
78+
case (.kucoinSpotGetAccount(let lhsError),
79+
.kucoinSpotGetAccount(let rhsError)):
80+
return (lhsError as NSError) == (rhsError as NSError)
81+
82+
case (.kucoinSpotGetTransferable(let lhsError),
83+
.kucoinSpotGetTransferable(let rhsError)):
84+
return (lhsError as NSError) == (rhsError as NSError)
85+
86+
case (.kucoinSpotListAccounts(let lhsError),
87+
.kucoinSpotListAccounts(let rhsError)):
88+
return (lhsError as NSError) == (rhsError as NSError)
89+
90+
case (.kucoinSpotOrderList(let lhsError),
91+
.kucoinSpotOrderList(let rhsError)):
92+
return (lhsError as NSError) == (rhsError as NSError)
93+
94+
case (.kucoinSpotPlaceStopLimitOrder(let lhsError),
95+
.kucoinSpotPlaceStopLimitOrder(let rhsError)):
96+
return (lhsError as NSError) == (rhsError as NSError)
97+
98+
case (.kucoinSpotStopOrderList(let lhsError),
99+
.kucoinSpotStopOrderList(let rhsError)):
100+
return (lhsError as NSError) == (rhsError as NSError)
101+
102+
case (.kucoinStatusCodeNotOK(let lhsStatusCode,
103+
let lhsLocalizedErrorMessage,
104+
let lhsErrorCode,
105+
let lhsErrorMessage),
106+
.kucoinStatusCodeNotOK(let rhsStatusCode,
107+
let rhsLocalizedErrorMessage,
108+
let rhsErrorCode,
109+
let rhsErrorMessage)):
110+
return lhsStatusCode == rhsStatusCode
111+
&& lhsLocalizedErrorMessage == rhsLocalizedErrorMessage
112+
&& lhsErrorCode == rhsErrorCode
113+
&& lhsErrorMessage == rhsErrorMessage
114+
115+
case (.limitPriceTooHigh(let lhsEntryPrice, let lhsLimitPrice),
116+
.limitPriceTooHigh(let rhsEntryPrice, let rhsLimitPrice)):
117+
return lhsEntryPrice == rhsEntryPrice && lhsLimitPrice == rhsLimitPrice
118+
119+
case (.limitPriceTooLow(let lhsEntryPrice, let lhsLimitPrice),
120+
.limitPriceTooLow(let rhsEntryPrice, let rhsLimitPrice)):
121+
return lhsEntryPrice == rhsEntryPrice && lhsLimitPrice == rhsLimitPrice
122+
123+
case (.unexpected(let lhsError),
124+
.unexpected(let rhsError)):
125+
return (lhsError as NSError) == (rhsError as NSError)
126+
127+
case (.unexpectedResponse(let lhsModelString),
128+
.unexpectedResponse(let rhsModelString)):
129+
return lhsModelString == rhsModelString
130+
131+
default:
132+
return false
133+
}
134+
}
135+
}
136+

Sources/SwiftTrader/Model/Error/SwiftTraderError.swift

-8
Original file line numberDiff line numberDiff line change
@@ -115,11 +115,3 @@ public enum SwiftTraderError: Error {
115115
/// And error ocurred while executing the function `SwiftTrader.kucoinFuturesPositionList()`.
116116
case kucoinFuturesPositionList(error: Error)
117117
}
118-
119-
// MARK: - Equatable
120-
121-
extension SwiftTraderError: Equatable {
122-
public static func == (lhs: SwiftTraderError, rhs: SwiftTraderError) -> Bool {
123-
lhs.localizedDescription == rhs.localizedDescription
124-
}
125-
}

0 commit comments

Comments
 (0)