Skip to content
Snippets Groups Projects
Commit 581c1b0d authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Update FileTransferProgressCallback

parent fd39571c
No related branches found
No related tags found
2 merge requests!132Update Bindings,!102Release 1.0.0
......@@ -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
))
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment