Skip to content

Commit 34abc0e

Browse files
committed
Add equatable and hashable conformance to success & failure types
1 parent 06ec621 commit 34abc0e

4 files changed

Lines changed: 17 additions & 3 deletions

File tree

Sources/CoreDataRepository/AggregateRepository.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public final class AggregateRepository {
4646
}
4747

4848
/// A return type for failure to calculate
49-
public struct Failure: Error {
49+
public struct Failure: Error, Hashable {
5050
let function: Function
5151
let request: NSFetchRequest<NSDictionary>
5252
let error: RepositoryErrors
@@ -236,3 +236,5 @@ extension NSExpressionDescription {
236236
return expDesc
237237
}
238238
}
239+
240+
extension AggregateRepository.Success: Equatable where Value: Equatable {}

Sources/CoreDataRepository/BatchRepository.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@ public final class BatchRepository {
2424

2525
// MARK: Return Types
2626
/// Return type for successful results
27-
public enum Success: Error, Equatable {
27+
public enum Success: Error, Hashable {
2828
case insert(NSBatchInsertRequest, NSBatchInsertResult)
2929
case update(NSBatchUpdateRequest, NSBatchUpdateResult)
3030
case delete(NSBatchDeleteRequest, NSBatchDeleteResult)
3131
}
3232

3333
/// Return type for failures
34-
public enum Failure: Error, Equatable {
34+
public enum Failure: Error, Hashable {
3535
case insert(NSBatchInsertRequest, RepositoryErrors)
3636
case update(NSBatchUpdateRequest, RepositoryErrors)
3737
case delete(NSBatchDeleteRequest, RepositoryErrors)

Sources/CoreDataRepository/CRUDRepository.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,3 +155,9 @@ public final class CRUDRepository {
155155
}.eraseToAnyPublisher()
156156
}
157157
}
158+
159+
extension CRUDRepository.Success: Equatable where Model: Equatable {}
160+
extension CRUDRepository.Failure: Equatable where Model: Equatable {}
161+
162+
extension CRUDRepository.Success: Hashable where Model: Hashable {}
163+
extension CRUDRepository.Failure: Hashable where Model: Hashable {}

Sources/CoreDataRepository/FetchRepository.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,3 +134,9 @@ extension AnyPublisher {
134134
repository.subscription(self)
135135
}
136136
}
137+
138+
extension FetchRepository.Success: Equatable where Model: Equatable {}
139+
extension FetchRepository.Failure: Equatable where Model: Equatable {}
140+
141+
extension FetchRepository.Success: Hashable where Model: Hashable {}
142+
extension FetchRepository.Failure: Hashable where Model: Hashable {}

0 commit comments

Comments
 (0)