From 1192afb456aa2fa940a24ca8b6c5c2deb30b1336 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Fri, 29 Jul 2022 14:22:11 +0100 Subject: [PATCH] Add ResumeBackup functor --- .../Functors/ResumeBackup.swift | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 Sources/ElixxirDAppsSDK/Functors/ResumeBackup.swift diff --git a/Sources/ElixxirDAppsSDK/Functors/ResumeBackup.swift b/Sources/ElixxirDAppsSDK/Functors/ResumeBackup.swift new file mode 100644 index 00000000..f557dd56 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/Functors/ResumeBackup.swift @@ -0,0 +1,39 @@ +import Bindings +import XCTestDynamicOverlay + +public struct ResumeBackup { + public var run: (Int, Int, UpdateBackupFunc) throws -> Backup + + public func callAsFunction( + e2eId: Int, + udId: Int, + callback: UpdateBackupFunc + ) throws -> Backup { + try run(e2eId, udId, callback) + } +} + +extension ResumeBackup { + public static let live = ResumeBackup { e2eId, udId, callback in + var error: NSError? + let bindingsBackup = BindingsResumeBackup( + e2eId, + udId, + callback.makeBindingsUpdateBackupFunc(), + &error + ) + if let error = error { + throw error + } + guard let bindingsBackup = bindingsBackup else { + fatalError("BindingsResumeBackup returned `nil` without providing error") + } + return .live(bindingsBackup) + } +} + +extension ResumeBackup { + public static let unimplemented = ResumeBackup( + run: XCTUnimplemented("\(Self.self)") + ) +} -- GitLab