Skip to content

Commit

Permalink
Merge pull request hyperoslo#275 from agarmash/remove-custom-result-type
Browse files Browse the repository at this point in the history
Remove CacheResult in favor of Swift.Result [edited]
  • Loading branch information
3lvis committed Nov 1, 2020
2 parents dcdfd5f + 28acf9a commit ce26874
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 51 deletions.
8 changes: 0 additions & 8 deletions Cache.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,6 @@
D28A1D241F6FFEF60030DF81 /* ObjectConverterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D285143E1F6FFE1F00C674D1 /* ObjectConverterTests.swift */; };
D28C9BAC1F67ECD400C180C1 /* TestHelper+iOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5291CDF1C28374800B702C9 /* TestHelper+iOS.swift */; };
D28C9BAF1F67EF8300C180C1 /* UIImage+ExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5291DA01C28405900B702C9 /* UIImage+ExtensionsTests.swift */; };
D292DAFD1F6A970B0060F614 /* CacheResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = D292DAFC1F6A970B0060F614 /* CacheResult.swift */; };
D292DAFE1F6A970B0060F614 /* CacheResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = D292DAFC1F6A970B0060F614 /* CacheResult.swift */; };
D292DAFF1F6A970B0060F614 /* CacheResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = D292DAFC1F6A970B0060F614 /* CacheResult.swift */; };
D2CF981E1F69427C00CE8F68 /* TestCase+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2CF981B1F69427C00CE8F68 /* TestCase+Extensions.swift */; };
D2CF981F1F69427C00CE8F68 /* TestCase+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2CF981B1F69427C00CE8F68 /* TestCase+Extensions.swift */; };
D2CF98201F69427C00CE8F68 /* TestCase+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2CF981B1F69427C00CE8F68 /* TestCase+Extensions.swift */; };
Expand Down Expand Up @@ -206,7 +203,6 @@
D27014A420D129EB003B45C7 /* TransformerFactory.swift */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.swift; path = TransformerFactory.swift; sourceTree = "<group>"; tabWidth = 4; };
D285143E1F6FFE1F00C674D1 /* ObjectConverterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ObjectConverterTests.swift; sourceTree = "<group>"; };
D28897041F8B79B300C61DEE /* JSONDecoder+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "JSONDecoder+Extensions.swift"; sourceTree = "<group>"; };
D292DAFC1F6A970B0060F614 /* CacheResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CacheResult.swift; sourceTree = "<group>"; };
D292DB001F6AA06B0060F614 /* SyncStorageTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncStorageTests.swift; sourceTree = "<group>"; };
D292DB031F6AA0730060F614 /* AsyncStorageTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AsyncStorageTests.swift; sourceTree = "<group>"; };
D2CF981B1F69427C00CE8F68 /* TestCase+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "TestCase+Extensions.swift"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -355,7 +351,6 @@
D2CF98571F694FFA00CE8F68 /* ImageWrapper.swift */,
D2CF98591F694FFA00CE8F68 /* StorageError.swift */,
D2CF98861F695B8F00CE8F68 /* Types.swift */,
D292DAFC1F6A970B0060F614 /* CacheResult.swift */,
D2D4CC151FA3145000E4A2D5 /* MD5.swift */,
D2D4CC1F1FA3411300E4A2D5 /* JSONDictionaryWrapper.swift */,
D2D4CC231FA3426B00E4A2D5 /* JSONArrayWrapper.swift */,
Expand Down Expand Up @@ -803,7 +798,6 @@
D27014A720D129EB003B45C7 /* TransformerFactory.swift in Sources */,
D270147E20D107DA003B45C7 /* SyncStorage.swift in Sources */,
2292AB7D252A14520031F3B9 /* URL+Extensions.swift in Sources */,
D292DAFF1F6A970B0060F614 /* CacheResult.swift in Sources */,
D21B669A1F6A724300125DE1 /* Date+Extensions.swift in Sources */,
0E79164C250E2AA500A71666 /* Hasher+constantAccrossExecutions.swift in Sources */,
D21B66891F6A723C00125DE1 /* ImageWrapper.swift in Sources */,
Expand Down Expand Up @@ -893,7 +887,6 @@
D27014A620D129EB003B45C7 /* TransformerFactory.swift in Sources */,
D270147D20D107DA003B45C7 /* SyncStorage.swift in Sources */,
2292AB7C252A14520031F3B9 /* URL+Extensions.swift in Sources */,
D292DAFE1F6A970B0060F614 /* CacheResult.swift in Sources */,
D21B66991F6A724200125DE1 /* Date+Extensions.swift in Sources */,
0E79164B250E2AA500A71666 /* Hasher+constantAccrossExecutions.swift in Sources */,
D21B66801F6A723C00125DE1 /* ImageWrapper.swift in Sources */,
Expand Down Expand Up @@ -945,7 +938,6 @@
D270148C20D113EA003B45C7 /* Optional+Extension.swift in Sources */,
D2CF98601F694FFA00CE8F68 /* DiskConfig.swift in Sources */,
D270147020D1018A003B45C7 /* Transformer.swift in Sources */,
D292DAFD1F6A970B0060F614 /* CacheResult.swift in Sources */,
D27014A520D129EB003B45C7 /* TransformerFactory.swift in Sources */,
D2D4CC241FA3426B00E4A2D5 /* JSONArrayWrapper.swift in Sources */,
2292AB7B252A14520031F3B9 /* URL+Extensions.swift in Sources */,
Expand Down
16 changes: 0 additions & 16 deletions Source/Shared/Library/CacheResult.swift

This file was deleted.

48 changes: 24 additions & 24 deletions Source/Shared/Storage/AsyncStorage.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,34 +14,34 @@ public class AsyncStorage<Key: Hashable, Value> {
}

extension AsyncStorage {
public func entry(forKey key: Key, completion: @escaping (CacheResult<Entry<Value>>) -> Void) {
public func entry(forKey key: Key, completion: @escaping (Result<Entry<Value>, Error>) -> Void) {
serialQueue.async { [weak self] in
guard let `self` = self else {
completion(CacheResult.error(StorageError.deallocated))
completion(.failure(StorageError.deallocated))
return
}

do {
let anEntry = try self.innerStorage.entry(forKey: key)
completion(CacheResult.value(anEntry))
completion(.success(anEntry))
} catch {
completion(CacheResult.error(error))
completion(.failure(error))
}
}
}

public func removeObject(forKey key: Key, completion: @escaping (CacheResult<()>) -> Void) {
public func removeObject(forKey key: Key, completion: @escaping (Result<(), Error>) -> Void) {
serialQueue.async { [weak self] in
guard let `self` = self else {
completion(CacheResult.error(StorageError.deallocated))
completion(.failure(StorageError.deallocated))
return
}

do {
try self.innerStorage.removeObject(forKey: key)
completion(CacheResult.value(()))
completion(.success(()))
} catch {
completion(CacheResult.error(error))
completion(.failure(error))
}
}
}
Expand All @@ -50,56 +50,56 @@ extension AsyncStorage {
_ object: Value,
forKey key: Key,
expiry: Expiry? = nil,
completion: @escaping (CacheResult<()>) -> Void) {
completion: @escaping (Result<(), Error>) -> Void) {
serialQueue.async { [weak self] in
guard let `self` = self else {
completion(CacheResult.error(StorageError.deallocated))
completion(.failure(StorageError.deallocated))
return
}

do {
try self.innerStorage.setObject(object, forKey: key, expiry: expiry)
completion(CacheResult.value(()))
completion(.success(()))
} catch {
completion(CacheResult.error(error))
completion(.failure(error))
}
}
}

public func removeAll(completion: @escaping (CacheResult<()>) -> Void) {
public func removeAll(completion: @escaping (Result<(), Error>) -> Void) {
serialQueue.async { [weak self] in
guard let `self` = self else {
completion(CacheResult.error(StorageError.deallocated))
completion(.failure(StorageError.deallocated))
return
}

do {
try self.innerStorage.removeAll()
completion(CacheResult.value(()))
completion(.success(()))
} catch {
completion(CacheResult.error(error))
completion(.failure(error))
}
}
}

public func removeExpiredObjects(completion: @escaping (CacheResult<()>) -> Void) {
public func removeExpiredObjects(completion: @escaping (Result<(), Error>) -> Void) {
serialQueue.async { [weak self] in
guard let `self` = self else {
completion(CacheResult.error(StorageError.deallocated))
completion(.failure(StorageError.deallocated))
return
}

do {
try self.innerStorage.removeExpiredObjects()
completion(CacheResult.value(()))
completion(.success(()))
} catch {
completion(CacheResult.error(error))
completion(.failure(error))
}
}
}

public func object(forKey key: Key, completion: @escaping (CacheResult<Value>) -> Void) {
entry(forKey: key, completion: { (result: CacheResult<Entry<Value>>) in
public func object(forKey key: Key, completion: @escaping (Result<Value, Error>) -> Void) {
entry(forKey: key, completion: { (result: Result<Entry<Value>, Error>) in
completion(result.map({ entry in
return entry.object
}))
Expand All @@ -108,8 +108,8 @@ extension AsyncStorage {

public func existsObject(
forKey key: Key,
completion: @escaping (CacheResult<Bool>) -> Void) {
object(forKey: key, completion: { (result: CacheResult<Value>) in
completion: @escaping (Result<Bool, Error>) -> Void) {
object(forKey: key, completion: { (result: Result<Value, Error>) in
completion(result.map({ _ in
return true
}))
Expand Down
4 changes: 2 additions & 2 deletions Tests/iOS/Tests/Storage/AsyncStorageTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ final class AsyncStorageTests: XCTestCase {
storage.setObject(user, forKey: "user", completion: { _ in })
storage.object(forKey: "user", completion: { result in
switch result {
case .value(let cachedUser):
case .success(let cachedUser):
XCTAssertEqual(cachedUser, self.user)
expectation.fulfill()
default:
Expand All @@ -52,7 +52,7 @@ final class AsyncStorageTests: XCTestCase {
then("all are removed") {
intStorage.existsObject(forKey: "key-99", completion: { result in
switch result {
case .value:
case .success:
XCTFail()
default:
expectation.fulfill()
Expand Down
2 changes: 1 addition & 1 deletion Tests/iOS/Tests/Storage/StorageTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ final class StorageTests: XCTestCase {

storage.async.object(forKey: "user", completion: { result in
switch result {
case .value(let cachedUser):
case .success(let cachedUser):
XCTAssertEqual(cachedUser, self.user)
expectation.fulfill()
default:
Expand Down

0 comments on commit ce26874

Please sign in to comment.