From d0641a44290e78b0fed93106149adaadc2347860 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Fri, 29 Jul 2022 13:49:26 +0100 Subject: [PATCH] Add UpdateBackupFunc callback --- .../Callbacks/UpdateBackupFunc.swift | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Sources/ElixxirDAppsSDK/Callbacks/UpdateBackupFunc.swift diff --git a/Sources/ElixxirDAppsSDK/Callbacks/UpdateBackupFunc.swift b/Sources/ElixxirDAppsSDK/Callbacks/UpdateBackupFunc.swift new file mode 100644 index 00000000..5748695f --- /dev/null +++ b/Sources/ElixxirDAppsSDK/Callbacks/UpdateBackupFunc.swift @@ -0,0 +1,37 @@ +import Bindings +import XCTestDynamicOverlay + +public struct UpdateBackupFunc { + public init(handle: @escaping (Data) -> Void) { + self.handle = handle + } + + public var handle: (Data) -> Void +} + +extension UpdateBackupFunc { + public static let unimplemented = UpdateBackupFunc( + handle: XCTUnimplemented("\(Self.self)") + ) +} + +extension UpdateBackupFunc { + func makeBindingsUpdateBackupFunc() -> BindingsUpdateBackupFuncProtocol { + class CallbackObject: NSObject, BindingsUpdateBackupFuncProtocol { + init(_ callback: UpdateBackupFunc) { + self.callback = callback + } + + let callback: UpdateBackupFunc + + func updateBackup(_ encryptedBackup: Data?) { + guard let encryptedBackup = encryptedBackup else { + fatalError("BindingsUpdateBackupFunc received `nil` encryptedBackup") + } + callback.handle(encryptedBackup) + } + } + + return CallbackObject(self) + } +} -- GitLab