From 581c1b0dd442e2b356ebb81937d3c0ef2b2c2ee1 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Tue, 1 Nov 2022 21:54:52 +0100 Subject: [PATCH] Update FileTransferProgressCallback --- .../FileTransferProgressCallback.swift | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/Sources/XXClient/Callbacks/FileTransferProgressCallback.swift b/Sources/XXClient/Callbacks/FileTransferProgressCallback.swift index 9c77d7af..615a715a 100644 --- a/Sources/XXClient/Callbacks/FileTransferProgressCallback.swift +++ b/Sources/XXClient/Callbacks/FileTransferProgressCallback.swift @@ -5,21 +5,24 @@ public struct FileTransferProgressCallback { public struct Callback { public init( progress: Progress, - partTracker: FilePartTracker + partTracker: FilePartTracker, + error: Error? ) { self.progress = progress self.partTracker = partTracker + self.error = error } public var progress: Progress public var partTracker: FilePartTracker + public var error: Error? } - public init(handle: @escaping (Result<Callback, NSError>) -> Void) { + public init(handle: @escaping (Callback) -> Void) { self.handle = handle } - public var handle: (Result<Callback, NSError>) -> Void + public var handle: (Callback) -> Void } extension FileTransferProgressCallback { @@ -51,24 +54,23 @@ extension FileTransferProgressCallback { let debugName: String func callback(_ payload: Data?, t: BindingsFilePartTracker?, err: Error?) { - if let error = err { - callback.handle(.failure(error as NSError)) - return - } guard let payload = payload else { fatalError("\(debugName) received `nil` payload without providing error") } - guard let tracker = t else { - fatalError("\(debugName) received `nil` tracker without providing error") - } + let progress: Progress do { - callback.handle(.success(.init( - progress: try Progress.decode(payload), - partTracker: .live(tracker) - ))) + progress = try Progress.decode(payload) } catch { - callback.handle(.failure(error as NSError)) + fatalError("\(debugName) payload decoding failed with error: \(error)") + } + guard let tracker = t else { + fatalError("\(debugName) received `nil` tracker without providing error") } + callback.handle(.init( + progress: progress, + partTracker: .live(tracker), + error: err + )) } } -- GitLab