Skip to content

Commit 87bf5e0

Browse files
authored
Merge pull request #272 from colinhumber/result-rename
Renamed Result to CacheResult
2 parents 9a279c3 + ed8355b commit 87bf5e0

File tree

4 files changed

+48
-48
lines changed

4 files changed

+48
-48
lines changed

Cache.xcodeproj/project.pbxproj

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,9 @@
101101
D28A1D241F6FFEF60030DF81 /* ObjectConverterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D285143E1F6FFE1F00C674D1 /* ObjectConverterTests.swift */; };
102102
D28C9BAC1F67ECD400C180C1 /* TestHelper+iOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5291CDF1C28374800B702C9 /* TestHelper+iOS.swift */; };
103103
D28C9BAF1F67EF8300C180C1 /* UIImage+ExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5291DA01C28405900B702C9 /* UIImage+ExtensionsTests.swift */; };
104-
D292DAFD1F6A970B0060F614 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = D292DAFC1F6A970B0060F614 /* Result.swift */; };
105-
D292DAFE1F6A970B0060F614 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = D292DAFC1F6A970B0060F614 /* Result.swift */; };
106-
D292DAFF1F6A970B0060F614 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = D292DAFC1F6A970B0060F614 /* Result.swift */; };
104+
D292DAFD1F6A970B0060F614 /* CacheResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = D292DAFC1F6A970B0060F614 /* CacheResult.swift */; };
105+
D292DAFE1F6A970B0060F614 /* CacheResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = D292DAFC1F6A970B0060F614 /* CacheResult.swift */; };
106+
D292DAFF1F6A970B0060F614 /* CacheResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = D292DAFC1F6A970B0060F614 /* CacheResult.swift */; };
107107
D2CF981E1F69427C00CE8F68 /* TestCase+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2CF981B1F69427C00CE8F68 /* TestCase+Extensions.swift */; };
108108
D2CF981F1F69427C00CE8F68 /* TestCase+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2CF981B1F69427C00CE8F68 /* TestCase+Extensions.swift */; };
109109
D2CF98201F69427C00CE8F68 /* TestCase+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2CF981B1F69427C00CE8F68 /* TestCase+Extensions.swift */; };
@@ -206,7 +206,7 @@
206206
D27014A420D129EB003B45C7 /* TransformerFactory.swift */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.swift; path = TransformerFactory.swift; sourceTree = "<group>"; tabWidth = 4; };
207207
D285143E1F6FFE1F00C674D1 /* ObjectConverterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ObjectConverterTests.swift; sourceTree = "<group>"; };
208208
D28897041F8B79B300C61DEE /* JSONDecoder+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "JSONDecoder+Extensions.swift"; sourceTree = "<group>"; };
209-
D292DAFC1F6A970B0060F614 /* Result.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Result.swift; sourceTree = "<group>"; };
209+
D292DAFC1F6A970B0060F614 /* CacheResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CacheResult.swift; sourceTree = "<group>"; };
210210
D292DB001F6AA06B0060F614 /* SyncStorageTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncStorageTests.swift; sourceTree = "<group>"; };
211211
D292DB031F6AA0730060F614 /* AsyncStorageTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AsyncStorageTests.swift; sourceTree = "<group>"; };
212212
D2CF981B1F69427C00CE8F68 /* TestCase+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "TestCase+Extensions.swift"; sourceTree = "<group>"; };
@@ -355,7 +355,7 @@
355355
D2CF98571F694FFA00CE8F68 /* ImageWrapper.swift */,
356356
D2CF98591F694FFA00CE8F68 /* StorageError.swift */,
357357
D2CF98861F695B8F00CE8F68 /* Types.swift */,
358-
D292DAFC1F6A970B0060F614 /* Result.swift */,
358+
D292DAFC1F6A970B0060F614 /* CacheResult.swift */,
359359
D2D4CC151FA3145000E4A2D5 /* MD5.swift */,
360360
D2D4CC1F1FA3411300E4A2D5 /* JSONDictionaryWrapper.swift */,
361361
D2D4CC231FA3426B00E4A2D5 /* JSONArrayWrapper.swift */,
@@ -803,7 +803,7 @@
803803
D27014A720D129EB003B45C7 /* TransformerFactory.swift in Sources */,
804804
D270147E20D107DA003B45C7 /* SyncStorage.swift in Sources */,
805805
2292AB7D252A14520031F3B9 /* URL+Extensions.swift in Sources */,
806-
D292DAFF1F6A970B0060F614 /* Result.swift in Sources */,
806+
D292DAFF1F6A970B0060F614 /* CacheResult.swift in Sources */,
807807
D21B669A1F6A724300125DE1 /* Date+Extensions.swift in Sources */,
808808
0E79164C250E2AA500A71666 /* Hasher+constantAccrossExecutions.swift in Sources */,
809809
D21B66891F6A723C00125DE1 /* ImageWrapper.swift in Sources */,
@@ -893,7 +893,7 @@
893893
D27014A620D129EB003B45C7 /* TransformerFactory.swift in Sources */,
894894
D270147D20D107DA003B45C7 /* SyncStorage.swift in Sources */,
895895
2292AB7C252A14520031F3B9 /* URL+Extensions.swift in Sources */,
896-
D292DAFE1F6A970B0060F614 /* Result.swift in Sources */,
896+
D292DAFE1F6A970B0060F614 /* CacheResult.swift in Sources */,
897897
D21B66991F6A724200125DE1 /* Date+Extensions.swift in Sources */,
898898
0E79164B250E2AA500A71666 /* Hasher+constantAccrossExecutions.swift in Sources */,
899899
D21B66801F6A723C00125DE1 /* ImageWrapper.swift in Sources */,
@@ -945,7 +945,7 @@
945945
D270148C20D113EA003B45C7 /* Optional+Extension.swift in Sources */,
946946
D2CF98601F694FFA00CE8F68 /* DiskConfig.swift in Sources */,
947947
D270147020D1018A003B45C7 /* Transformer.swift in Sources */,
948-
D292DAFD1F6A970B0060F614 /* Result.swift in Sources */,
948+
D292DAFD1F6A970B0060F614 /* CacheResult.swift in Sources */,
949949
D27014A520D129EB003B45C7 /* TransformerFactory.swift in Sources */,
950950
D2D4CC241FA3426B00E4A2D5 /* JSONArrayWrapper.swift in Sources */,
951951
2292AB7B252A14520031F3B9 /* URL+Extensions.swift in Sources */,
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import Foundation
2+
3+
/// Used for callback in async operations.
4+
public enum CacheResult<T> {
5+
case value(T)
6+
case error(Error)
7+
8+
public func map<U>(_ transform: (T) -> U) -> CacheResult<U> {
9+
switch self {
10+
case .value(let value):
11+
return CacheResult<U>.value(transform(value))
12+
case .error(let error):
13+
return CacheResult<U>.error(error)
14+
}
15+
}
16+
}

Source/Shared/Library/Result.swift

Lines changed: 0 additions & 16 deletions
This file was deleted.

Source/Shared/Storage/AsyncStorage.swift

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -14,34 +14,34 @@ public class AsyncStorage<Key: Hashable, Value> {
1414
}
1515

1616
extension AsyncStorage {
17-
public func entry(forKey key: Key, completion: @escaping (Result<Entry<Value>>) -> Void) {
17+
public func entry(forKey key: Key, completion: @escaping (CacheResult<Entry<Value>>) -> Void) {
1818
serialQueue.async { [weak self] in
1919
guard let `self` = self else {
20-
completion(Result.error(StorageError.deallocated))
20+
completion(CacheResult.error(StorageError.deallocated))
2121
return
2222
}
2323

2424
do {
2525
let anEntry = try self.innerStorage.entry(forKey: key)
26-
completion(Result.value(anEntry))
26+
completion(CacheResult.value(anEntry))
2727
} catch {
28-
completion(Result.error(error))
28+
completion(CacheResult.error(error))
2929
}
3030
}
3131
}
3232

33-
public func removeObject(forKey key: Key, completion: @escaping (Result<()>) -> Void) {
33+
public func removeObject(forKey key: Key, completion: @escaping (CacheResult<()>) -> Void) {
3434
serialQueue.async { [weak self] in
3535
guard let `self` = self else {
36-
completion(Result.error(StorageError.deallocated))
36+
completion(CacheResult.error(StorageError.deallocated))
3737
return
3838
}
3939

4040
do {
4141
try self.innerStorage.removeObject(forKey: key)
42-
completion(Result.value(()))
42+
completion(CacheResult.value(()))
4343
} catch {
44-
completion(Result.error(error))
44+
completion(CacheResult.error(error))
4545
}
4646
}
4747
}
@@ -50,56 +50,56 @@ extension AsyncStorage {
5050
_ object: Value,
5151
forKey key: Key,
5252
expiry: Expiry? = nil,
53-
completion: @escaping (Result<()>) -> Void) {
53+
completion: @escaping (CacheResult<()>) -> Void) {
5454
serialQueue.async { [weak self] in
5555
guard let `self` = self else {
56-
completion(Result.error(StorageError.deallocated))
56+
completion(CacheResult.error(StorageError.deallocated))
5757
return
5858
}
5959

6060
do {
6161
try self.innerStorage.setObject(object, forKey: key, expiry: expiry)
62-
completion(Result.value(()))
62+
completion(CacheResult.value(()))
6363
} catch {
64-
completion(Result.error(error))
64+
completion(CacheResult.error(error))
6565
}
6666
}
6767
}
6868

69-
public func removeAll(completion: @escaping (Result<()>) -> Void) {
69+
public func removeAll(completion: @escaping (CacheResult<()>) -> Void) {
7070
serialQueue.async { [weak self] in
7171
guard let `self` = self else {
72-
completion(Result.error(StorageError.deallocated))
72+
completion(CacheResult.error(StorageError.deallocated))
7373
return
7474
}
7575

7676
do {
7777
try self.innerStorage.removeAll()
78-
completion(Result.value(()))
78+
completion(CacheResult.value(()))
7979
} catch {
80-
completion(Result.error(error))
80+
completion(CacheResult.error(error))
8181
}
8282
}
8383
}
8484

85-
public func removeExpiredObjects(completion: @escaping (Result<()>) -> Void) {
85+
public func removeExpiredObjects(completion: @escaping (CacheResult<()>) -> Void) {
8686
serialQueue.async { [weak self] in
8787
guard let `self` = self else {
88-
completion(Result.error(StorageError.deallocated))
88+
completion(CacheResult.error(StorageError.deallocated))
8989
return
9090
}
9191

9292
do {
9393
try self.innerStorage.removeExpiredObjects()
94-
completion(Result.value(()))
94+
completion(CacheResult.value(()))
9595
} catch {
96-
completion(Result.error(error))
96+
completion(CacheResult.error(error))
9797
}
9898
}
9999
}
100100

101-
public func object(forKey key: Key, completion: @escaping (Result<Value>) -> Void) {
102-
entry(forKey: key, completion: { (result: Result<Entry<Value>>) in
101+
public func object(forKey key: Key, completion: @escaping (CacheResult<Value>) -> Void) {
102+
entry(forKey: key, completion: { (result: CacheResult<Entry<Value>>) in
103103
completion(result.map({ entry in
104104
return entry.object
105105
}))
@@ -108,8 +108,8 @@ extension AsyncStorage {
108108

109109
public func existsObject(
110110
forKey key: Key,
111-
completion: @escaping (Result<Bool>) -> Void) {
112-
object(forKey: key, completion: { (result: Result<Value>) in
111+
completion: @escaping (CacheResult<Bool>) -> Void) {
112+
object(forKey: key, completion: { (result: CacheResult<Value>) in
113113
completion(result.map({ _ in
114114
return true
115115
}))

0 commit comments

Comments
 (0)